【问题标题】:How does spark dataframe saveAsTable auto cast data typespark dataframe saveAsTable 如何自动转换数据类型
【发布时间】:2020-06-30 05:17:18
【问题描述】:

当目标表具有与当前数据框架构不同的数据类型时,数据框 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")

现有的 hive 表是由以下人员创建的:

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

似乎数据框可以将数据写入配置单元表,但i 列在数据框中是bigint,但int int hive。 我想知道 spark 数据框是如何进行数据类型转换的,我在哪里可以找到他的相关文档。
谢谢。

【问题讨论】:

  • 火花版本 2.3.5

标签: hive apache-spark-sql


【解决方案1】:

【讨论】:

  • 所以这里我预计saveAsTable操作会抛出异常,导致spark dataframe和hive表中的数据类型不匹配,但实际上是将df数据写入hive表,我想知道spark数据帧如何进行转换(long/bigint to int)。
猜你喜欢
  • 2016-05-16
  • 2021-05-18
  • 2018-07-10
  • 1970-01-01
  • 2020-05-30
  • 2019-01-08
  • 2016-11-26
  • 2021-03-26
  • 1970-01-01
相关资源
最近更新 更多