Spark для анализа обратной косой черты после запятой в файлах CSV, которые не заключены в кавычки - PullRequest
0 голосов
/ 07 декабря 2018

Кажется, что spark не может экранировать символы в файлах CSV, которые не заключены в кавычки, например,

Name,Age,Address,Salary
Luke,24,Mountain View\,CA,100

Я использую pyspark, следующий код, очевидно, не будет работать с запятой внутриПоле адреса.

df = spark.read.csv(fname, schema=given_schema,
                sep=',', quote='',mode="FAILFAST")

Есть предложения?

1 Ответ

0 голосов
/ 12 декабря 2018

Не могли бы вы сначала попробовать использовать rdd, переформатировать его, а затем создать поверх него фрейм данных.

df  = sc.textFile(PATH_TO_FILE) \
    .map(lambda x: x.replace("\\," ,"|")) \
    .mapPartitions(lambda line: csv.reader(line,delimiter=','))\
    .filter(lambda line: line[0] != 'Name') \
    .toDF(['Name','Age','Address','Salary'])

вот так выглядит ваш фрейм данных:

>>> df.show();
+----+---+----------------+------+
|Name|Age|         Address|Salary|
+----+---+----------------+------+
|Luke| 24|Mountain View|CA|   100|
+----+---+----------------+------+

Я должен заменить адресную колонку "\," на "|"и затем я разделил данные, используя разделитель ','.Не уверен, насколько это соответствует вашим требованиям, но он работает.

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