【问题标题】:what is the difference between spark.read.parquet vs pyarrow.hdfs.connect().read_parquetspark.read.parquet 与 pyarrow.hdfs.connect().read_parquet 有什么区别
【发布时间】:2020-06-16 12:18:08
【问题描述】:

我有 parquet 格式的 hdfs 文件,有两种读取方式:

  • spark.read.parquet(hdfs_path)

  • pyarrow.hdfs.connect().read_parquet(hdfs_path)

请问这两者有什么区别,哪一个更好?

谢谢。

【问题讨论】:

    标签: apache-spark pyspark hdfs


    【解决方案1】:

    第一段代码spark.read.parquet() function 是 Apache Spark 的原生代码。它是 Apache Spark 源代码中DatasourceReader 类中定义的方法。它是在 Scala 中实现的

    第二段代码pyarrow.hdfs.connect().read_parquet(hdfs_path) 也从 hdfs 读取 parquet 文件,但在 Apache Arrrow 中实现,并在 Python 中定义为 PyArrow 库。

    第一个代码 sn-p 将读取 Spark Dataframe 中的 parquet 数据,您将从一开始就拥有所有可用的并行处理能力。

    【讨论】:

    • 谢谢,你的意思是 pyarrow 没有所有的并行处理能力?所以推荐使用 spark.read?
    • Pyarrow辅助读取parquet文件,但是要并行处理数据,需要使用Dask等框架
    猜你喜欢
    • 1970-01-01
    • 2011-02-19
    • 2013-03-14
    • 2018-09-14
    • 2014-01-03
    • 2021-12-22
    • 2017-10-25
    • 2011-06-09
    • 2021-05-11
    相关资源
    最近更新 更多