Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Apache Sparkはドットかアンダースコアからファイル名が始まると読み込んでくれない

Spark 3.4.0で確認した。例えば、.foobar.csvのようなファイルを読み取らせようとしても、読み込んでくれないし、しかし一見成功したかのような振舞いになるので注意しなければならない。

//> using scala "2.13"
//> using lib "org.apache.spark::spark-core:3.4.0"
//> using lib "org.apache.spark::spark-sql:3.4.0"
//> using lib "org.apache.spark::spark-mllib:3.4.0"

import org.apache.spark.sql.SparkSession
val spark = SparkSession
  .builder()
  .appName("to-parquet")
  .config("spark.master", "local")
  .getOrCreate()

val df = spark.read.option("header", true).csv(".foobar.csv") // 読まない

df.show()

stackoverflow.com

Sparkは内部的にHadoopを読み込みに使っているらしく、フォーマットによらず、._から始まるファイルを読み込むことができないとのこと。じゃあ最初から言えよ!!めちゃくちゃハマった!!

ドキュメントにも何も書いてなそうなので、ハマりどころ発見~~~という感じ。

spark.apache.org

stackoverflow.com

あわせて読みたい

blog.3qe.us

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?