Apache spark show()打印空结果,而在hdfs中它不是空的

Apache spark show()打印空结果,而在hdfs中它不是空的,apache-spark,hadoop,pyspark,hdfs,yarn,Apache Spark,Hadoop,Pyspark,Hdfs,Yarn,我有一个pyspark应用程序,它被提交到具有多个节点的纱线,它还从hdfs读取拼花地板 在我的代码中,我有一个直接从hdfs读取的数据帧: df = self.spark.read.schema(self.schema).parquet("hdfs://path/to/file") 当我在上述代码之后直接在我的代码中使用df.show(n=2)时,它输出: +---------+--------------+-------+----+ |aaaaaaaaa|bbbbbbbbbbbbbb|cc

我有一个pyspark应用程序,它被提交到具有多个节点的纱线,它还从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-我认为这可能与司机和遗嘱执行人有关

我可能和纱线有关吗

3-使用spark submit时提供的配置

当前配置:

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路径,该路径运行良好。

因此问题在于我提供的jar文件


hadoop版本是2.7.2,我把它改成了3.2.0,它工作得很好,所以问题出在我提供的jar文件上


hadoop版本是2.7.2,我把它改成了3.2.0,它工作得很好

可能是错误的模式?不,这是正确的,只是确认一下,你可以在不提供模式的情况下运行相同的代码,并将Infreschema设置为true,然后查看df.show是否提供了输出。它没有提供输出:(可能是错误的模式?不,这是正确的。只是为了确认您是否可以在不提供模式的情况下运行相同的代码,并将inferschema设置为true,然后查看df.show是否提供输出。它不提供输出:(