Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Dataframe在写入Impala时自动创建Impala表_Apache Spark_Apache Spark Sql_Impala - Fatal编程技术网

Apache spark Dataframe在写入Impala时自动创建Impala表

Apache spark Dataframe在写入Impala时自动创建Impala表,apache-spark,apache-spark-sql,impala,Apache Spark,Apache Spark Sql,Impala,我想知道Spark Dataframe保存是否有任何功能,即当它将数据写入Impala表时,它也会在Impala中以前未创建该表时创建该表 例如,代码: myDataframe.write.mode(SaveMode.Overwrite).jdbc(jdbcURL, "books", connectionProperties) 如果表不存在,则应创建该表 应根据dataframe架构确定表架构 我期待着您的建议/想法 问候,, Florin我过去通过mutateStatement创建了表。使用

我想知道Spark Dataframe保存是否有任何功能,即当它将数据写入Impala表时,它也会在Impala中以前未创建该表时创建该表

例如,代码:

myDataframe.write.mode(SaveMode.Overwrite).jdbc(jdbcURL, "books", connectionProperties)
如果表不存在,则应创建该表

应根据dataframe架构确定表架构

我期待着您的建议/想法

问候,,
Florin

我过去通过mutateStatement创建了表。使用相关DDL执行。我使用SPARK 2.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") 

用命令传递驱动程序jar

spark shell—驱动程序类路径


谢谢你的回答。“用户”和“诱惑”表以前是在Impala中创建的?或者它们是由火花瞬间产生的?你在测试什么版本的火花和黑斑羚?我想知道这一点,我相信我的答案是正确的。如果不是的话,那我就吃我的帽子。也许我会有一个主意来遵循SO和look的协议
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)