如何将数据帧数据类型转换为String?

时间:2017-03-24 07:52:15

标签: apache-spark apache-spark-sql

我有一个具有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");

Dataframe架构:

 df.printSchema
root
 |-- c_date: date (nullable = true)
 |-- c_timestamp: timestamp (nullable = true)

我想将这些列转换为String。我怎样才能做到这一点?

因为问题我需要这个:Spark csv data validation failed for date and timestamp data types of Hive

2 个答案:

答案 0 :(得分:2)

在scala中,我们通常会抛出这样的数据类型:

df.select($"date".cast(StringType).as("new_date"))

答案 1 :(得分:2)

您可以执行以下操作:

df.withColumn("c_date", df.col("c_date").cast(StringType))