我試圖使用spark sql從pyspark資料框架創建一個hive磁區表。下面是我正在執行的命令,但得到一個錯誤。錯誤資訊如下。
df.createOrReplaceTempView(df_view)
spark.sql("create table if not exists tablename PARTITION (date) AS select * from df_view"/span>)
錯誤。pyspark.sql.utils.ParseException:u"
不匹配的輸入'PARTITION',期望<EOF>
當我嘗試在上述行中不使用PARTITION(日期)來運行時,它可以正常作業。但是,我無法創建帶有磁區的表。
如何創建帶有磁區的表?
如何創建帶磁區的表,并從.pyspark資料幀中插入日期到hive.
。uj5u.com熱心網友回復:
為了解決這個問題,我首先創建了這個表
spark.sql("create table if not exists table_name (name STRING,age INT) partitioned by (date_column STRING)")然后用下面的方法將動態磁區設定為非嚴格的。 spark.sql("SET hive.exec.dynamic.partition = true") spark.sql("SET hive.exec.dynamic.partition.mode = nonstrict") spark.sql("insert into table table_name PARTITION (date_column) select *, '%s from df_view" % current_date))
其中current date是一個包含今天日期的變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/328157.html
標籤:
