如何从 pyspark 数据帧创建持久视图

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

我有一个 pyspark 数据框

df
,并且想将其保存为持久视图。那可能吗?

我尝试执行以下操作:

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

我收到以下错误消息: “不允许通过引用临时视图

my_view
来创建永久视图
temp_view

python apache-spark pyspark
1个回答
0
投票

根据此拉请求,不允许创建引用临时视图的永久视图。 PySpark 也没有可以创建持久视图的方法,例如。

createTempView
createOrReplaceTempView
。您只能创建临时视图。例如:

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|
+----+

您可以列出可用的视图:

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)]
© www.soinside.com 2019 - 2024. All rights reserved.