Spark Java 将数据附加到 Hive table
Spark Java append data to Hive table
我在尝试将数据附加到配置单元时遇到了一些问题 table。
我正确地声明了会话会话:我可以从 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");
附加一些数据时,我得到
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()
似乎无法按您的预期工作。试试这个,
注册临时工table
df.registerTempTable("sample.temptable")
如果 table 尚未存在,则创建并插入数据,
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")
插入数据(Table应该存在)
sqlContext.sql("insert into table sample.test_table select * from sample.temptable")
降温table
sqlContext.sql("DROP TABLE IF EXISTS sample.temptable")
阅读更多关于temporary table usage
我在尝试将数据附加到配置单元时遇到了一些问题 table。 我正确地声明了会话会话:我可以从 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");
附加一些数据时,我得到
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()
似乎无法按您的预期工作。试试这个,
注册临时工table
df.registerTempTable("sample.temptable")
如果 table 尚未存在,则创建并插入数据,
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")
插入数据(Table应该存在)
sqlContext.sql("insert into table sample.test_table select * from sample.temptable")
降温table
sqlContext.sql("DROP TABLE IF EXISTS sample.temptable")
阅读更多关于temporary table usage