pyspark - 通过 Pyspark 在数据帧上运行 SQL 查询

标签 pyspark apache-spark-sql

我想在数据帧上运行 sql 查询,但我是否必须在此数据帧上创建 View ? 有没有更简单的方法?

df = spark.createDataFrame([
('a', 1, 1), ('a',1, None), ('b', 1, 1),
('c',1, None), ('d', None, 1),('e', 1, 1)
]).toDF('id', 'foo', 'bar')

和查询我想针对这个数据帧运行一些复杂的查询。 例如 我能做到

df.createOrReplaceTempView("temp_view")
df_new = pyspark.sql("select id,max(foo) from temp_view group by id")

但是在查询之前我是否必须先将其转换为 View ? 我知道有一个数据帧等效操作。 上述查询只是一个示例。

最佳答案

你可以这样做

df.select('id', 'foo')

这将返回一个新的 Spark DataFrame,其中包含 idfoo 列。

关于pyspark - 通过 Pyspark 在数据帧上运行 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72249387/

相关文章:

scala - Spark数据帧:How to add a index Column : Aka Distributed Data Index

apache-spark - 使用 Apache spark java 搜索替换

python - 使用 pyspark 创建年份列

python-3.x - 使用 1 个数据帧时出现 "Cannot combine the series or dataframe because it comes from a different dataframe"

python - PySpark:如何将具有 SparseVector 类型列的 Spark 数据帧写入 CSV 文件?

java - 如何将 csv 文件与 hive 中的表连接起来

apache-spark - 添加条件过滤器子句

apache-spark - SparkSql 如果值为 null 则取前一个

python - 在 pyspark 中使用基于 DataFrame 的 API 在 2 个稀疏向量列表之间进行矩阵乘法的最佳方法是什么?

python - 使用spark SQL读取Parquet格式的不存在列