У меня есть один довольно большой файл CSV с разделителями-запятыми (12 ГБ). У меня есть 4 столбца, 1 из них содержит вложенные списки с jsons. Я могу создать соединение из Excel, и оно правильно его читает (несмотря на то, что у меня там есть несколько вложенных списков, что означает больше запятых). Тем не менее, когда я пытаюсь сделать это с помощью spark, при каждом появлении запятой он разбивается на части, что создает много беспорядка.
Хорошо, поэтому я попытался предоставить схему. Очевидно, CSV не поддерживает тип массива, поэтому я не могу сделать это так легко. Я могу определить схему со строкой вместо массива, но тогда мой последний столбец будет выглядеть так:
Итак, я получаю все, что предшествует первой запятой, отдых пропал.
Я пытался прочитать его как RDD с s c .textFile, но затем структуры json сломались.
Я пытаюсь написать функцию, которая исправит мои jsons, но это довольно разочаровывает, поэтому я подумал, что, может быть, есть какой-то более простой способ?
Я знаю, что это может быть глупый вопрос, но я просто не понимаю, почему что-то такое простое в Excel быть таким сложным в искре?
Спасибо за любые советы!
РЕДАКТИРОВАТЬ Excel:
Искра:
То же самое со схемой, определенной следующим образом:
user_schema = StructType([
StructField("businessID", StringType(), True),
StructField("vid", StringType(), True),
StructField("company_name", StringType(), True),
StructField("financial_statements", StringType(), True)
])
Я также попытался изменить файл на паркет, используя ADF, чтобы поймать схему, но она тоже не работает. Хотя я предоставил один из образца. АПД: