Spark Java将数据追加到配置单元表中



在尝试将数据附加到配置单元表时,我遇到了一些问题。我正确地将会话声明为会话:我可以从表中检索数据

SparkSession spark = SparkSession
.builder()
.appName("Java Spark SQL basic example")
.config("hive.metastore.uris", "thrift://localhost:9083")
.enableHiveSupport()
.master("local[*]")
.getOrCreate();

当尝试使用df.write().mode(SaveMode.Append).saveAsTable("sample.test_table");附加一些数据时,我得到了

Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: hive. Please find packages at http://spark.apache.org/third-party-projects.html

我缺少什么?

编辑:使用df.write().insertInto("prova2.test_table");工作,不知道它是如何工作的

saveAsTable()似乎无法按您的意愿工作。试试这个吧,

注册临时表

df.registerTempTable("sample.temptable")

如果表尚未存在,则创建并插入数据,

sqlContext.sql("CREATE TABLE IF NOT EXISTS sample.test_table as select * from sample.temptable")

或者简单地创建它而不插入任何值,这样你就可以在没有任何异常的情况下重新运行代码

sqlContext.sql("CREATE TABLE IF NOT EXISTS sample.test_table")

插入数据(表应存在(

sqlContext.sql("insert into table sample.test_table select * from sample.temptable")

跌落温度表

sqlContext.sql("DROP TABLE IF EXISTS sample.temptable")

阅读更多关于临时表格使用的信息

最新更新