python - 如何从 pyspark 数据帧创建持久 View

标签 python apache-spark pyspark

我有一个 pyspark 数据框 df ,并希望将其保存为持久 View 。那可能吗?

我尝试执行以下操作:

df.createOrReplaceTempView("temp_view")
spark.sql('CREATE VIEW my_view AS SELECT * FROM temp_view'))

我收到以下错误消息:
“不允许通过引用临时 View my_view 创建永久 View temp_view

最佳答案

根据这个pull request不允许创建引用临时 View 的永久 View 。 PySpark 也没有可以创建持久 View 的方法,例如。 createTempViewcreateOrReplaceTempView .您只能创建临时 View 。例如:

df = spark.createDataFrame([[1, 2], [1, 2]], ['col1', 'col2'])

df.createOrReplaceTempView('view1')

spark.sql(
    """
    CREATE TEMP VIEW view2 AS
    SELECT col1
    FROM view1
    """
)

spark.sql(
    """
    SELECT *
    FROM view2
    """
).show()
输出:
+----+
|col1|
+----+
|   1|
|   1|
+----+
您可以列出可用的 View :
spark.catalog.listTables()
输出:
[Table(name='view1', database=None, description=None, tableType='TEMPORARY', isTemporary=True),
 Table(name='view2', database=None, description=None, tableType='TEMPORARY', isTemporary=True)]

关于python - 如何从 pyspark 数据帧创建持久 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58822133/

相关文章:

python Pandas 调用 groupby.agg 中的复杂函数

python - Hive 和 Spark 窗口函数的数据洗牌

apache-spark - 我只能从HDP安装HDFS吗?

hadoop - 执行器不匹配(在YARN伪分布式模式下闪烁)

python - `__class__`变量存储在python中的哪里,或者编译器如何知道在哪里找到它

python - 什么时候应该在 Python 中使用类和 self 方法?

python - 如何检查pyspark数据框中的字符串列是否全部为数字

scala - Spark : Convert column of string to an array

apache-spark - 根据条件组合 Spark 数据框列中的多行

apache-spark - pyspark.mllib DenseMatrix 乘法