是否可以使用相同的代码读取 csv 或 parquet 文件

Bil*_*Man 2 apache-spark apache-spark-sql pyspark

有谁知道是否可以使用相同的代码将 csv 或 parquet 文件读取到 spark 中。

我的用例是在生产中,我将使用大型镶木地板文件,但对于单元测试,我想使用 CSV。我正在使用类似于以下代码的内容:

spark.read().schema(schema).load(path);
Run Code Online (Sandbox Code Playgroud)

这在 CSV 情况下失败,但有以下例外:

file.csv is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [78, 9, 78, 10]
Run Code Online (Sandbox Code Playgroud)

我怀疑 spark 默认为镶木地板,这不起作用,但我想先检查一下。

Shu*_*Shu 5

spark.read.schema(schema).load(path);不提format()然后火花默认读取parquet文件。

如果您正在读取csv文件,那么我们需要提及.format("csv")让 spark 知道我们正在尝试读取 csv 文件,否则 spark 会将文件读取为parquet

spark.read.format("csv").schema(schema).load(path)