我在S3存储桶中有一个CSV文件(^分隔)。CSV文件看起来像这样:
id^"name"^"address"
1^"sam"^"TN"
2^"giri"^"Dummy"^"Value"
预期O/P:
id | name | address
1 | sam | TN
2 | giri | Dummy"^"Value
但是Dummy”^“Value-这个值被分成两个不同的列。我已经尝试了所有的CSV选项,但没有任何工作。我无法控制源数据。
代码:
df = spark.read.option("header",True)\
.option("delimiter",'^') \
.option("quote", "\"") \
.option("escape", "\"") \
.csv(<filepath>)
请分享如果周围有任何工作。谢谢.
2条答案
按热度按时间b4qexyjb1#
我首先使用您提供的相同选项读取CSV文件。阅读文件后,我使用
regexp_replace
函数将双引号内的^字符替换为自定义分隔符(例如,|).输出应为:
brgchamk2#
可以使用文本读取数据,然后进行转换
这就是Scala代码
你可以得到