如何解决是否可以通过.csv
例如,我有一个.csv
,它使用Excel方言,该方言使用类似Python的csv模块doubleQuote
之类的字符来转义引号。
例如,考虑下面的行:
"XX ""YYYYYYYY"",ZZZZZZ ""QQQQQQ""","JJJJ ""MMMM"",RRRR ""TTTT""",1234,RRRR,60,50
我希望模式变为:
[
'XX "YYYYYYYY",ZZZZZZ "QQQQQQ"','JJJJ "MMMM",RRRR "TTTT"','RRRR',50
]
是否可以通过编程/自动方式设置数据集的架构?
解决方法
虽然您可以在代码中执行此操作,但Foundrys Dataset-app也可以本地执行此操作。这意味着您可以跳过编写代码(很好),但也意味着您可以在管道中保存一个步骤(可以节省运行时的时间)。
然后应用以下设置,这将在您的情况下产生所需的结果:
然后按“保存并验证”,数据集应以正确的模式结尾:
,从此示例开始:
Dataset<Row> dataset = files
.sparkSession()
.read()
.option("inferSchema","true")
.csv(csvDataset);
output.getDataFrameWriter(dataset).write();
添加header
,quote
和escape
选项,如下所示:
Dataset<Row> dataset = files
.sparkSession()
.read()
.option("inferSchema","true")
.option("header","true")
.option("quote","\"")
.option("escape","\"")
.csv(csvDataset);
output.getDataFrameWriter(dataset).write();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。