Символ Unicode, когда я пишу Json из Spark Dataframe - PullRequest
0 голосов
/ 29 июня 2019

Когда я создаю кадр данных из файла партера, который мне дают, я могу показать и увидеть данные в правильном формате:

val df = spark.read.parquet("/Users/myuser/Downloads/data.parquet")
df.show(false)

, которые дают мне этот результат

+---------------------------+
|resgistration_desc_1_number|
+---------------------------+
|ABC95234        |
+---------------------------+

, когдаЯ собираю и распечатываю каждую полученную строку:

df.collect.foreach(println)
[ABC95234]

проблема возникает, когда я пишу df как json:

df.write.mode(SaveMode.Overwrite).json("/tmp/data.json")

Я получаю символ Unicode

{"resgistration_desc_1_number":"\u0000\u0000A\u0000B\u0000C\u00009\u00005\u00002\u00003\u00004\u0000\u0000"}

когда я хочу отфильтровать значение, мне нужно отфильтровать длинную строку с символом Unicode:

val test1 = "ABC95234"
val test2 = "\u0000\u0000A\u0000B\u0000C\u00009\u00005\u00002\u00003\u00004\u0000\u0000"

df.filter('resgistration_desc_1_number === test1).show <- this one show nothing
df.filter('resgistration_desc_1_number === test2).show <- this one show the value ABC95234

Я бы хотел, чтобы файл json просто записывался так:

{"resgistration_desc_1_number":"ABC95234"}

иЯ хотел бы фильтр со строкой test1.Я пытаюсь написать json с другой кодировкой, но она не работает:

df.write.option("encoding","unicode").json("/tmp/data_unicode.json")
df.write.option("encoding","UTF-16").json("/tmp/utf_16.json")

Мой вопрос: как лучше решить эту проблему?У тебя есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...