来自Spark的Hive外部表中的分区列

时间:2018-08-09 08:36:22

标签: apache-spark hive apache-spark-sql

使用spark中的分区创建外部表

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SaveMode


 val spark = SparkSession.builder().master("local[*]").appName("splitInput").enableHiveSupport().getOrCreate()

val sparkDf = spark.read.option("header","true").option("inferSchema","true").csv("input/candidate/event=ABCD/CandidateScheduleData_3007_2018.csv")

var newDf = sparkDf 
for(col <- sparkDf.columns){    newDf = newDf.withColumnRenamed(col,col.replaceAll("\\s", "_"))  }

newDf.write.mode(SaveMode.Overwrite).option("path","/output/candidate/event=ABCD/").partitionBy("CenterCode","ExamDate").saveAsTable("abc.candidatelist")

除分区列ExamDate格式创建为

外,其他所有内容均正常运行
 ExamDate=30%2F07%2F2018 instead of ExamDate=30-07-2018

如何用ExamDate格式的%2F替换-

1 个答案:

答案 0 :(得分:0)

%2F是百分比编码的/。这意味着数据完全为30/07/2018格式。您可以:

  • 使用指定的格式to_date对其进行解析。
  • 手动格式化具有所需格式的列。