我有一个 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 的方法,例如。 createTempView
和 createOrReplaceTempView
.您只能创建临时 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/