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
我的蜂巢表是
rundatetime String,
day_cunt BigInt,
my_key Int
Stored as Parquet;
如何将数据帧值保存到Hive表?请注意DF和hive表数据类型不同。
BigInt
不是supported data type的Spark DataFrames
。
您可以通过将day_count
转换为Long
来创建中间数据框:
val newDF = df.select($"rundatetime", $"day_count".cast("Long"), $"my_key")
使用cast("BigInt")
进行投射不会抛出错误,但实际上只会投射到Long
数据类型。