Apache Spark Dataframe - 从 CSV 文件的第 n 行加载数据
Apache Spark Dataframe - Load data from nth line of a CSV file
我想处理一个巨大的订单 CSV 文件 (5GB),文件开头有一些元数据行。
Header 列在第 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
是否可以在加载文件时跳过指定行数并使用 DataSet 的 'inferSchema' 选项?
Dataset<Row> df = spark.read()
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("\home\user\data170326.csv");
或者我是否需要定义两个不同的数据集并使用 "except(Dataset other)" 来排除包含要忽略的行的数据集?
您可以尝试将 "comment"
选项设置为 "m"
,有效地告诉 csv reader 跳过以 "m"
字符开头的行。
df = spark.read()
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.option("comment", "m")
.load("\home\user\data170326.csv")
我想处理一个巨大的订单 CSV 文件 (5GB),文件开头有一些元数据行。 Header 列在第 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
是否可以在加载文件时跳过指定行数并使用 DataSet 的 'inferSchema' 选项?
Dataset<Row> df = spark.read()
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("\home\user\data170326.csv");
或者我是否需要定义两个不同的数据集并使用 "except(Dataset other)" 来排除包含要忽略的行的数据集?
您可以尝试将 "comment"
选项设置为 "m"
,有效地告诉 csv reader 跳过以 "m"
字符开头的行。
df = spark.read()
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.option("comment", "m")
.load("\home\user\data170326.csv")