【问题标题】:PySpark parquet datatypesPySpark parquet 数据类型
【发布时间】:2018-06-01 19:12:00
【问题描述】:

我正在使用 PySpark 读取一个相对较大的 csv 文件(~10GB):

ddf = spark.read.csv('directory/my_file.csv')

所有列的数据类型为string

更改例如column_a 的数据类型后,我可以看到数据类型更改为integer。如果我将 ddf 写入 parquet 文件并读取 parquet 文件,我会注意到所有列的数据类型再次为 string问题:如何确保 parquet 文件包含正确的数据类型,这样我就不必再次更改数据类型(在读取 parquet 文件时)。

注意事项

我把ddf写成parquet文件如下:

ddf.repartition(10).write.parquet('directory/my_parquet_file', mode='overwrite')

我用:

  • PySpark 版本2.0.0.2
  • Python 3.x

【问题讨论】:

    标签: python-3.x pyspark


    【解决方案1】:

    我用 pandas 读取了我的大文件,没有这个问题。尝试使用熊猫。 http://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.read_csv.html

    In[1]: Import pandas as pd
    
    In[2]: df = pd.read_csv('directory/my_file.csv')
    

    【讨论】:

    • 我已经使用 Pandas 读取文件。但是,由于数据文件的大小和我必须做的计算,我想使用 PySpark 来解决这个问题。有没有办法读取/写入镶木地板文件并将数据类型“保存”到镶木地板文件中?
    猜你喜欢
    • 2018-10-27
    • 2019-02-15
    • 1970-01-01
    • 2016-04-14
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    相关资源
    最近更新 更多