我试图在Databricks平台上执行一些命令来了解Spark SQL,我从Pandas Dataframe创建了Spark Dataframe并将其注册为temp视图来执行SQL查询。我可以执行Select,但不能执行Truncate。
import pandas as pd
import numpy as np
#create Pandas DataFrame
pd_temp = pd.DataFrame(np.random.random(10))
#convert it into Spark DataFrame
spark_temp = spark.createDataFrame(pd_temp)
#register Spark DataFrame as table to run sql query
spark_temp.createOrReplaceTempView("temp")
#checking catalog list
print(spark.catalog.listTables())
**Output :**
(1) Spark Jobs
spark_temp:pyspark.sql.dataframe.DataFrame = [0: double]
[Table(name='temp', database=None, description=None,
tableType='TEMPORARY', isTemporary=True)]
现在,我可以在此临时视图上执行查询:
# Now, query temp table
query = 'select * from temp'
result = spark.sql(query)
result.show()
这是执行罚款,我得到的输出。
但是,下面的执行失败了。。
query = 'truncate table temp'
result = spark.sql(query)
result.show()
输出:
"Table or view 'temp' not found in database 'default';"
但是,我们把那个临时工注册为view。