数据框字符串到Hive表Bigint - 如何转换

时间:2017-04-28 15:06:04

标签: scala hive spark-dataframe parquet

Spark:1.6,Scala,Hive

我有一个数据框DF.printschema

root
 |-- rundatetime: string (nullable = true)
 |-- day_cunt: String (nullable = true)
 |-- my_key: integer (nullable = true)

DF.show()

rundatetime             |day_cunt | my_key
2017-04-21 11:00:06     | 5       |10
2017-04-21 12:10:06     | 15      |1000

我的Hive表是

rundatetime String,
day_cunt    BigInt,
my_key      Int
Stored as Parquet;

如何将数据框值保存到Hive表?请注意DF和hive表数据类型不同。

1 个答案:

答案 0 :(得分:0)

sorttable.js不是BigInt的{​​{3}}。

您可以通过将Spark DataFrames转换为day_count

来创建中间数据框
Long

使用val newDF = df.select($"rundatetime", $"day_count".cast("Long"), $"my_key") 进行投射不会抛出错误,但实际上会转换为cast("BigInt")数据类型。