1

膨大なオーダーのCSVファイル(5GB)を処理したいと思います。ファイルの先頭にいくつかのメタデータ行があります。 ヘッダー列は行4(「h」で始まる)に続いて、オプション性を説明する別のメタデータ行が続きます。データ行はApache Spark Dataframe - CSVファイルのn番目の行からデータを読み込みます。

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 

は、ファイルをロードするときに指定した行数をスキップして、データセットのための「inferSchema」オプションを使用することは可能です「D」で始まりますか?

Dataset<Row> df = spark.read() 
      .format("csv") 
      .option("header", "true") 
      .option("inferSchema", "true") 
      .load("\home\user\data\20170326.csv"); 

それとも私は2つの異なるデータセットを定義し、無視する行とのデータセットを除外するために、「(他のデータセット)を除いて」を使用する必要がありますか?

答えて

1

"m"のオプションを"m"に設定して、"m"文字で始まる行をスキップするようにcsvリーダーに効果的に指示することができます。

df = spark.read() 
      .format("csv") 
      .option("header", "true") 
      .option("inferSchema", "true") 
      .option("comment", "m") 
      .load("\home\user\data\20170326.csv") 
関連する問題