python - 如何将 pandas 数据框导出到文件,以便可以使用 pandas dan pyspark 打开它?
问题描述
我已经阅读了这两个文档,pandas.read_csv
并且pyspark.sql.DataFrameReader.csv
似乎 PySpark 端没有doublequote
参数,因此字段内的引号字符使用转义字符和熊猫双引号字符进行转义,以显示 qoute 字符在字段内。
这可以通过 set parameter doubleqoute=False
and escapechar='\\'
inpandas.to_csv
和 set parameter multiLine=True
in来解决pyspark.sql.DataFrameReader.csv
。
但是,在我将这些参数设置为pandas.to_csv
然后尝试pandas.read_csv
使用相同的参数之后。当期望 3 个字段时,我收到错误显示该行有 4 个字段。
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='\\')
解决方案
我尝试了同样的方法,但没有遇到这个问题。请检查以下尝试过的代码
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: []
希望,这可以帮助你。
推荐阅读
- jsr352 - 批处理作业定义:如何运行动态计算的分区数?
- python-3.x - Python rstrip没有给出想要的结果
- php - PHP HTML 表格作为 Excel .xls 文件
- javascript - 如何将一个文件下载到特定位置?
- android - unity 移动响应式游戏规模
- python - 如何在匹配前后匹配和创建字典
- python-3.x - 如何使用 Python 中的电子邮件模块从“应用程序/pkcs7-mime”中提取数据?
- python - 有没有更好的方法来忽略文件中的标题?
- ios - 如何在 swift 4.x 或 + 中更改警报操作标题颜色
- matlab - 从工作区输入 Simulink 错误