2 votes

Lecture de CSV avec l'option multiligne et l'option d'encodage

Dans azure Databricks, lorsque je lis un fichier CSV avec multiline = 'true' y encoding = 'SJIS' il semble que l'option d'encodage soit ignorée. Si j'utilise multiline utilise son option par défaut encoding c'est-à-dire UTF-8 , mais mon fichier est dans SJIS format. Est-ce qu'il y a une solution pour cela, toute aide sera appréciée. Voici le code que j'utilise, et j'utilise pyspark.

df= sqlContext.read.format('csv').options(header='true',inferSchema='false',delimiter='\t',encoding='SJIS',multiline='true').load('/mnt/Data/Data.tsv')

0voto

Jim Xu Points 15444

D'après mes recherches, lorsque nous lisons un fichier csv dans Azure datatricks, il ne prend pas en charge les options multilignes. Je vous suggère donc de mettre à jour votre code comme ci-dessous.

df= spark.read.format('csv').options(header='true',inferSchema='false',delimiter='\t',charset='SJIS').load('/FileStore/tables/test.csv')

enter image description here Pour plus de détails, veuillez vous référer à https://docs.databricks.com/data/data-sources/read-csv.html . enter image description here

0voto

Malheureusement, vous ne pouvez pas utiliser "multiline" et "charset" ensemble, si vous les utilisez ensemble, l'encodage sera défini par défaut.

Azure Databricks charset : UTF-8 par défaut mais peut être défini avec d'autres noms de charset valides.

Pour l'expliquer clairement, j'ai pris l'exemple de l'encodage de la signature SJIS " Espèces+ Signature "pris comme colonne " signature "sur le fichier d'entrée.

C'est le comportement attendu si vous utilisez multiline=true y encoding/charset to “SJIS” qui renvoie le même résultat que default charset UTF-8 .

enter image description here

Par défaut : Jeu de caractères "UTF-8"

enter image description here

Encodage/charset à "SJIS". :

enter image description here

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X