rsl*_*ack 2 apache-spark apache-spark-sql spark-dataframe apache-spark-2.0
我想处理一个巨大的订单 CSV 文件 (5GB),文件开头有一些元数据行。标题列在第 4 行(以“h,”开头)表示,后跟另一个元数据行,描述可选性。数据行以“d”开头,
m,Version,v1.0
m,Type,xx
m,<OtherMetaData>,<...>
h,Col1,Col2,Col3,Col4,Col5,.............,Col100
m,Mandatory,Optional,Optional,...........,Mandatory
d,Val1,Val2,Val3,Val4,Val5,.............,Val100
Run Code Online (Sandbox Code Playgroud)
加载文件时是否可以跳过指定数量的行并对 DataSet 使用“inferSchema”选项?
Dataset<Row> df = spark.read()
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("\home\user\data\20170326.csv");
Run Code Online (Sandbox Code Playgroud)
或者我是否需要定义两个不同的数据集并使用“except(Dataset other)”来排除包含要忽略的行的数据集?
您可以尝试将该"comment"选项设置为"m",有效地告诉 csv 阅读器跳过以"m"字符开头的行。
df = spark.read()
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.option("comment", "m")
.load("\home\user\data\20170326.csv")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |