dataframe,用于在写入impala时自动创建impala表

yizd12fk  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(634)

我想知道spark dataframe saving是否有任何特性,即当它将数据写入impala表时,它也会在impala中以前没有创建该表时创建该表。
例如,代码:

myDataframe.write.mode(SaveMode.Overwrite).jdbc(jdbcURL, "books", connectionProperties)

如果表不存在,则应创建该表。
表架构应根据Dataframe架构确定。
我期待着您的建议/意见。
你好,弗洛林

w8rqjzmb

w8rqjzmb1#

import org.apache.spark.sql.SaveMode

val jdbcURL = s"jdbc:impala://192.168.10.555:21050;AuthMech=0"
val connectionProperties = new java.util.Properties()
sqlContext.sql("select * from temp_table").write.mode(SaveMode.Append).jdbc(jdbcURL, "users", connectionProperties)

或者

df.write.mode("append").jdbc(url="jdbc:impala://192.168.10.555:21050/test;auth=noSasl",table="tempTable", pro)
df.write.mode("overwrite").jdbc(url="jdbc:impala://192.168.10.555:21050/test;auth=noSasl",table="tempTable", pro)

通过命令传递驱动程序jar
spark shell—驱动程序类路径

wecizke3

wecizke32#

我在过去通过mutatestatement.execute和相关的ddl创建了表。我检查了Spark2.x,append也自动创建了它。sp append就是你所需要的。
对于jdbc:

jdbcDF.write.mode("append").jdbc(url, table, prop)

对于通过spark 2.x自动配置单元上下文的配置单元:

x.write.mode("append").saveAsTable("a_hive_table_xx")

相关问题