我有一个包含Date
和Timestamp
数据类型的蜂巢表。我正在使用以下 java 代码创建DataFrame
:
SparkConf conf = new SparkConf(true).setMaster("yarn-cluster").setAppName("SAMPLE_APP");
SparkContext sc = new SparkContext(conf);
HiveContext hc = new HiveContext(sc);
DataFrame df = hc.table("testdb.tbl1");
数据帧架构:
df.printSchema
root
|-- c_date: date (nullable = true)
|-- c_timestamp: timestamp (nullable = true)
我想将这些列隐藏为字符串。我怎样才能做到这一点?
我需要这个是因为问题:Hive 的日期和时间戳数据类型的 Spark csv 数据验证失败
您可以执行以下操作:
df.withColumn("c_date", df.col("c_date").cast(StringType))
在 scala 中,我们通常像这样强制转换数据类型:
df.select($"date".cast(StringType).as("new_date"))