df.show()在hdfs中不为空时输出空结果

问题描述 投票:0回答:1

我有一个pyspark应用程序,该应用程序提交给具有多个节点的yarn,它还从hdfs中读取实木复合地板

在我的代码中,我有一个直接从hdfs中读取的数据框:

df = self.spark.read.schema(self.schema).parquet("hdfs://path/to/file")

当我在上述代码之后的代码中直接使用df.show(n=2)时,它输出:

+---------+--------------+-------+----+
|aaaaaaaaa|bbbbbbbbbbbbbb|ccccccc|dddd|
+---------+--------------+-------+----+
+---------+--------------+-------+----+

但是当我手动转到hdfs路径时,数据不为空。

我尝试了什么?

1-起初我以为我可能为执行程序和驱动程序使用的内核和内存很少,所以我将它们加倍了,没有任何改变。

2-然后我认为该路径可能是错误的,所以我给它提供了错误的hdfs路径,并抛出了该路径不存在的错误

我在假设什么?

1-我认为这可能与驱动程序和执行程序有关

2-我可能和纱线有关

使用火花提交时提供的3-配置

当前配置:

spark-submit \
    --master yarn \
    --queue my_queue_name \
    --deploy-mode cluster \
    --jars some_jars \
    --conf spark.yarn.dist.files some_files \
    --conf spark.sql.catalogImplementation=in-memory \
    --properties-file some_zip_file \
    --py-files some_py_files \
    main.py

我确定

数据不为空。在另一个运行正常的项目中提供了相同的hdfs路径。

apache-spark hadoop pyspark hdfs yarn
1个回答
1
投票

所以问题出在我提供的jar文件中

hadoop版本为2.7.2,我将其更改为3.2.0,并且工作正常

© www.soinside.com 2019 - 2024. All rights reserved.