【问题标题】:How to write pyspark dataframe to HDFS and then how to read it back into dataframe?如何将 pyspark 数据帧写入 HDFS,然后如何将其读回数据帧?
【发布时间】:2017-11-01 14:23:23
【问题描述】:

我有一个非常大的 pyspark 数据框。所以我想对它的子集进行预处理,然后将它们存储到hdfs。稍后我想阅读所有这些并合并在一起。谢谢。

【问题讨论】:

    标签: python hadoop pyspark hdfs spark-dataframe


    【解决方案1】:
    • 将 DataFrame 写入 HDFS (Spark 1.6)。

      df.write.save('/target/path/', format='parquet', mode='append') ## df is an existing DataFrame object.
      

    一些格式选项是csvparquetjson 等。

    • 从 HDFS (Spark 1.6) 读取 DataFrame。

      from pyspark.sql import SQLContext
      sqlContext = SQLContext(sc)
      sqlContext.read.format('parquet').load('/path/to/file') 
      

    格式方法接受parquetcsvjson等参数。

    【讨论】:

    • 嘿,我得到了 attributError : DataFrameWriter' 对象没有属性 'csv.我还需要稍后在新的 spark 会话中阅读该数据框。
    • 您的 spark 安装版本是什么?
    • 火花版本 1.6.1
    • 非常感谢。我有一个疑问,在阅读该位置是否有多个文件时。如何指定我要读取的文件。谢谢
    • 要从 hdfs 中删除数据,您可以使用像 hdfs dfs -rm -rf <path> 这样的 HDFS shell 命令。您可以使用 python 子进程执行此操作,例如 subprocess.call(["hdfs", "dfs", "-rm", "-rf", path])
    猜你喜欢
    • 2023-02-21
    • 1970-01-01
    • 2023-04-03
    • 2020-10-06
    • 2018-06-24
    • 2020-11-26
    • 2018-11-14
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多