我有一个 pyspark 数据框
df
,并且想将其保存为持久视图。那可能吗?
我尝试执行以下操作:
df.createOrReplaceTempView("temp_view")
spark.sql('CREATE VIEW my_view AS SELECT * FROM temp_view'))
我收到以下错误消息: “不允许通过引用临时视图
my_view
来创建永久视图temp_view
”
根据此拉请求,不允许创建引用临时视图的永久视图。 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)]