sparkDataframe字符串到配置单元varchar

slwdgvem  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(519)

我通过sparkjdbc连接到dataframe从oracle读取数据。我有一个专栏,很明显 StringType 在Dataframe中。
现在我想把它保存在hive中,但是作为数据类型 Varchar(5) . 我知道字符串将被截断,但它是好的。
我尝试使用UDF,但由于dataframe没有 varchar 或者 char 类型。我还在配置单元中创建了一个临时视图,使用:

val tv = df.createOrReplaceTempView("t_name")
val df = spark.sql("select cast(col_name as varchar(5)) from tv")

但是当我 printSchema ,我仍然看到 string 类型。
我怎样才能把它保存为 varchar 配置单元表中的列?

t3psigkw

t3psigkw1#

尝试用所需的模式(本例中为varchar(5))创建配置单元表(“dbname.tablename”),并直接从dataframe插入到表中,如下所示。

df.write.insertInto("dbName.tableName" ,overwrite = False)

相关问题