将pysparkDataframe写入分区配置单元表

3z6pesqy  于 2021-05-16  发布在  Spark
关注(0)|答案(1)|浏览(504)

我在学Spark。我有一个Dataframe ts 结构下面的。

ts.show()
+--------------------+--------------------+
|    UTC|                 PST|
+--------------------+--------------------+
|2020-11-04 02:24:...|2020-11-03 18:24:...|
+--------------------+--------------------+

我需要插入 ts 在Hive中的分区表中,具有下面的结构,

spark.sql(""" create table db.ts_part
(
UTC timestamp,
PST timestamp
)
PARTITIONED BY(  bkup_dt DATE )
STORED AS ORC""")

如何通过 system run date 在insert语句中进行分区 bkup_dt 在基于日期的表中。
我试过这样的代码。但没用

ts.write.partitionBy(current_date()).insertInto("db.ts_part",overwrite=False)

我该怎么做?有人能帮忙吗!

8ehkhllq

8ehkhllq1#

尝试使用创建新列 current_date() 然后按配置单元表分区写入。 Example:df.\ withColumn("bkup_dt",current_date()).\ write.\ partitionBy("bkup_dt").\ insertInto("db.ts_part",overwrite=False)UPDATE: 试用者 creating temp view 那就跑吧 insert 声明。

df.createOrReplaceTempView("tmp")

sql("insert into table <table_name> partition (bkup_dt) select *,current_date bkup_dt from tmp")

相关问题