Загрузка CSV в кадр данных PySpark, подсчитывающий разрывы строк как новые строки

avatar
Steve
8 августа 2021 в 23:38
53
0
0

Я пытаюсь загрузить CSV-файл во фрейм данных Spark, используя стандартные инструкции, однако CSV-файл загружается неправильно. Ниже заголовок и проблемная запись. Это представление файла Vim, показывающее ^M возврат каретки.

symbol,tweet_id,text,created_at,retweets,likes,geo,place,coordinates,location^M
AIG,1423790670557351945, "Next Monday, US stock market may edge up. The market is more likely to be mixed.
$MNST $AIG $WFC $GS $MET $BAC $JPM▒<80>▒",2021-08-06 23:38:43,1,0, , "Toronto, Ontario, Canada"^M

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

df = spark.read.load("symbols_tweets.csv",
                     format="csv", sep=",", header="true")

Проблема в том, что spark.read.load в итоге считает $MNST новой строкой, поскольку она появляется на новой строке. Есть ли способ заставить Spark обратить внимание на возврат каретки Unix ^M вместо этого, чтобы он загружал строки, как предполагалось? В качестве обходного пути я попытался преобразовать CSV во фрейм данных Pandas, а затем в фрейм данных Spark, однако это приводит к более сложным проблемам с типами данных — я бы предпочел решить более прямым способом.

Источник
Steve
8 августа 2021 в 23:45
0

также отметить, что Excel смог правильно прочитать формат - также пытался импортировать из XLS в искру, но также не работал

Steve
8 августа 2021 в 23:50
1

заработало, добавив multiline = "true" вот так >>>>>>> df = spark.read.load("symbols_tweets.csv", format="csv", sep=",",header="true" , многострочный = "истина")

Ответы (0)