如何将数据帧数据类型隐藏为字符串



我有一个包含DateTimestamp数据类型的蜂巢表。我正在使用以下 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"))

最新更新