要写入jdbc表的sparksqlsql查询是什么?

5f0d552i  于 2021-06-26  发布在  Hive
关注(0)|答案(4)|浏览(257)

用于spark中的sql查询。
对于read,我们可以通过

CREATE TEMPORARY TABLE jdbcTable
USING org.apache.spark.sql.jdbc
OPTIONS dbtable ...;

对于write,使用sql将数据写入远程jdbc表的查询是什么?
注意:我希望它是sql查询。plz提供了纯“sql查询”,当使用sparksql的hivecontext.sql(…)时,它可以写入jdbc。

e4yzc0pl

e4yzc0pl1#

是的,你可以。如果要将Dataframe保存到现有表中,可以使用

df.insertIntoJDBC(url, table, overwrite)

如果要创建新表来保存此Dataframe,可以使用

df.createJDBCTable(url, table, allowExisting)
n6lpvg4x

n6lpvg4x2#

// sc is an existing SparkContext.
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

sqlContext.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)")
sqlContext.sql("LOAD DATA LOCAL INPATH 'examples/src/main/resources/kv1.txt' INTO TABLE src")
vsmadaxz

vsmadaxz3#

您可以使用jdbc编写Dataframe,如下所示。

df.write.jdbc(url, "TEST.BASICCREATETEST", new Properties)
8dtrkrch

8dtrkrch4#

INSERT OVERWRITE TABLE 将使用jdbc连接写入数据库:

DROP TABLE IF EXISTS jdbcTemp;
CREATE TABLE jdbcTemp
USING org.apache.spark.sql.jdbc
OPTIONS (...);

INSERT OVERWRITE TABLE jdbcTemp
SELECT * FROM my_spark_data;
DROP TABLE jdbcTemp;

相关问题