【发布时间】:2021-12-01 14:34:15
【问题描述】:
我在使用 spark.read.json 时对 Spark 上的延迟加载感到困惑。
我有以下代码:
df_location_user_profile = [
f"hdfs://hdfs_cluster:8020/data/*/*"
]
df_json = spark.read.json(json_data_files)
虽然 HDFS 上的 JSON 数据按年和月(年=yyyy,月=mm)分区,但我想检索该数据集的所有数据。 对于这个代码块,我只从定义的位置读取数据,没有执行任何操作。但我在 Spark UI 上发现下一阶段的输入数据非常庞大。
据我了解,Spark 的延迟加载方式在调用操作之前不会读取数据。那么这让我很困惑。
之后,我调用count() 操作,然后创建新阶段,Spark 再次读取数据。
我的问题是,为什么 Spark 在没有调用任何操作时(在第一份工作,阶段)读取数据?我该如何优化它?
【问题讨论】:
标签: json apache-spark pyspark apache-spark-sql