Как экспортировать файл данных pandas в файл, чтобы его можно было открыть с помощью pandas dan pyspark? - PullRequest
3 голосов
/ 17 июня 2019

Я прочитал документацию как pandas.read_csv, так и pyspark.sql.DataFrameReader.csv, и кажется, что сторона PySpark не имеет параметра doublequote, поэтому символ кавычки внутри поля экранируется с помощью escape-символа и символа удвоения кавычек панд, чтобы показать, что qoute символ находится внутри поля.

Это можно решить, установив параметр doubleqoute=False и escapechar='\\' в pandas.to_csv и установив параметр multiLine=True в pyspark.sql.DataFrameReader.csv.

Но после того, как я установил эти параметры на pandas.to_csv, а затем попытался pandas.read_csv, используя тот же параметр. Я получил ошибку, показывающую, что в этой строке 4 поля, когда ожидаем 3 поля.

1242,"I see him, I know him \",an_username
1243,"I think I'm good now",another_username

Я думаю, что причина возникновения ошибки заключается в том, что второе поле первой строки содержит \ в качестве последнего символа, а pandas читает его как экранирующий символ " и думаю, что второе поле на этом не заканчивается. Есть ли способ решить эту проблему, кроме удаления \ символа?

Это пример скрипта для получения ошибки

import pandas as pd
from io import StringIO

f = StringIO()
pd.DataFrame({'class':['y','y','n'],
              'text':['I am fine','I saw him, I knew him \\','I think, I am good now'],
              'value':['username','an_username','another_username']})\
  .to_csv(f,doublequote=False,escapechar='\\',index=False)
f.seek(0)
print(f.read())
f.seek(0)
pd.read_csv(f,doublequote=False,escapechar='\\')

1 Ответ

0 голосов
/ 17 июня 2019

Я попробовал то же самое, но не получил эту проблему. Пожалуйста, проверьте ниже пробный код

import pandas as pd

data = pd.read_csv('c.csv')
print(data)

df = pd.DataFrame(data)
print(df)
df.to_csv('d.csv', doublequote=False)

data_1 = pd.read_csv('d.csv')
print(data_1)

Вывод вышеуказанного кода:

Empty DataFrame
Columns: [1242, I see him, I know him, True]
Index: []
Empty DataFrame
Columns: [1242, I see him, I know him, True]
Index: []
Empty DataFrame
Columns: [Unnamed: 0, 1242, I see him, I know him, True]
Index: []

Надеюсь, это может вам помочь.

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