繁体   English   中英

Spark Java 将数据附加到 Hive 表

[英]Spark Java append data to Hive table

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

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");添加一些数据时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()似乎无法按您的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")

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM