Как преобразовать символ Разделитель записей в перевод строки - PullRequest
0 голосов
/ 12 июня 2019

Здравствуйте, я использую для этого pyspark porpouse У меня есть текстовый файл, который содержит эту информацию

c-234r4|Julio|38|Madrida-533r2|Ana|32|Madrida-543r4|Sonia|33|Bilbaob-654r4|Jorge|23|Barcelona

Если вы видите, что все записи объединяются с использованием символа Разделитель записей ( см. Эту ссылку )

Я пытаюсь это сделать, но безрезультатно

df = spark.read.load("s3://my-bucket/txt_file/data.txt", format="csv", sep="|", inferSchema="true", encoding="UTF-8", escape='U+001E')


df.show(10, False)

Ошибка:

Py4JJavaError: An error occurred while calling o496.load.
: java.lang.RuntimeException: escape cannot be more than one character
    at org.apache.spark.sql.execution.datasources.csv.CSVOptions.getChar(CSVOptions.scala:52)

конечный результат должен выглядеть следующим образом:

+-------+-----+---+--------------+
|_c0    |_c1  |_c2|_c3           |
+-------+-----+---+--------------+
|c-234r4|Julio|38 |Madrid        |
|a-533r2|Ana  |32 |Madrid        |
|a-543r4|Sonia|33 |Bilbao        |
|b-654r4|Jorge|23 |Barcelona     |
+-------+-----+---+--------------+

Проверенные параметры:

опция-1 -> Это совершенно неправильно

enter image description here

option-2 -> Это показывает строки в виде столбцов ... и это неправильно

enter image description here


Может кто-нибудь дать мне совет, мне нужна идея, чтобы решить эту проблему в моей реальной роли?

Я буду признателен

Спасибо

...