spark java将数据附加到配置单元表

42fyovps  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(401)

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

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"); 工作,不知道它是怎么工作的

xmjla07d

xmjla07d1#

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")

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

相关问题