【问题标题】:How to export pandas dataframe to file so it can be open using pandas dan pyspark?如何将 pandas 数据框导出到文件,以便可以使用 pandas dan pyspark 打开它?
【发布时间】:2019-10-30 16:27:01
【问题描述】:

我已阅读 pandas.read_csvpyspark.sql.DataFrameReader.csv 文档,似乎 PySpark 端没有 doublequote 参数,因此字段内的引号字符使用转义字符和熊猫双引号字符进行转义以显示 qoute字符在字段内。

这可以通过在pandas.to_csv中设置参数doubleqoute=Falseescapechar='\\'并在pyspark.sql.DataFrameReader.csv中设置参数multiLine=True来解决。

但是,在我将这些参数设置为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='\\')

【问题讨论】:

    标签: python pandas dataframe pyspark


    【解决方案1】:

    我尝试了同样的方法,但没有遇到这个问题。请检查以下尝试过的代码

    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: []
    

    希望对你有所帮助。

    【讨论】:

    • 是的,很抱歉。我得到了错误的原因。我要编辑我的问题
    猜你喜欢
    • 2020-04-30
    • 2012-07-04
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2013-02-11
    • 1970-01-01
    • 2022-11-02
    相关资源
    最近更新 更多