【发布时间】:2021-10-29 00:19:35
【问题描述】:
我有一个数据框,其列为 Date 以及其他几列。
我想验证日期列值并检查格式是否为“dd/MM/yyyy”。 如果日期列包含任何其他格式,而不应将其标记为坏记录。 所以我使用选项 option("dateFormat", "dd/MM/yyyy") 来接受上述格式的日期,并且它以“dd/MM/yyyy”格式正确接受日期,但是如果我传递了无效格式(YYYY/mm/dd),但记录没有标记为无效,传递的日期正在转换为垃圾
输入文件:
colData1,2020/05/07,colData2,colData3
colData4,2020/05/07,colData5,colData6
colData7,2020/05/07,colData8,colData9
df = spark.read.format(
"com.databricks.spark.csv").schema(customSchema).option(
"escape", '\"').option(
"quote", '\"').option(
"header", "false").option(
"dateFormat", "dd/MM/yyyy").option(
"columnNameOfCorruptRecord","badRecords").csv(
rdd)
df.show()
DataFrame O/P :-
+--------+----------+--------+--------+----------+-----+
| OMIC| SMIC| VCLP| VName|badRecords|rowId|
+--------+----------+--------+--------+----------+-----+
|colData1|0012-11-09|colData2|colData3| null| 0|
|colData4|0012-11-09|colData5|colData6| null| 1|
|colData7|0012-11-09|colData8|colData9| null| 2|
+--------+----------+--------+--------+----------+-----+
请推荐
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql