spark dataframe如何保存稳定的自动转换数据类型

vlju58qv  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(288)

当目标表与当前dataframe架构具有不同的数据类型时,dataframe saveastable(追加模式)做什么。例如:

> val df = Seq((1L,1),(2L,1),(3L,1),(456789234L,1)).toDF("i","p")
> df.printSchema
root
 |-- i: long (nullable = false)
 |-- p: integer (nullable = false)
> df.write.mode("append").format("hive").partitionBy("p").saveAsTable("default.ljh_test2")

现有的配置单元表是通过以下方式创建的:

CREATE TABLE default.ljh_test2 (i int) PARTITIONED BY (p int) STORED AS ORC;

似乎dataframe可以将数据写入hive表,但是列 ibigint 在Dataframe中,但是 int 在 hive 里。我想知道spark dataframe是如何进行数据类型转换的,在哪里可以找到相关的文档。
谢谢。

wpx232ag

wpx232ag1#

Hive:https://data-flair.training/blogs/hive-data-types/
Spark:https://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/sql/types/package-summary.html
HivevsSpark:https://docs.cloudera.com/hdpdocuments/hdp3/hdp-3.1.4/integrating-hive/content/hive_hivewarehouseconnector_supported_types.html

相关问题