spark中的dataframe.show()和dataframe.take()有什么区别?为了提高性能,我们需要增加什么?

1 apache-spark apache-spark-sql

我正在使用数据帧从镶木地板文件中读取数据并创建临时视图并在临时视图之上运行 SQL 查询。

spark.read.parquet("filename.parquet").createOrReplaceTempView("temptable")

val df = spark.sql("SELECT * FROM temptable")

检查df我正在使用的结果,df.show()但执行需要更多时间,如果我使用,我没有看到任何区别df.take(10)

take()和之间有什么区别show()吗。我应该使用哪种方法来获得更好的性能来检查结果

Mic*_*est 8

take()并且show()是不同的。show()打印结果,take()返回行列表(在 PySpark 中)并可用于创建新的数据帧。它们都是动作。

打印结果

df.show() 
Run Code Online (Sandbox Code Playgroud)

获取行列表(PySpark)

sampleList = df.take(10)
Run Code Online (Sandbox Code Playgroud)