我正在尝试将 CSV 文件转换为镶木地板,并且我正在使用 Spark 来完成此操作。
SparkSession spark = SparkSession
.builder()
.appName(appName)
.config("spark.master", master)
.getOrCreate();
Dataset<Row> logFile = spark.read().csv("log_file.csv");
logFile.write().parquet("log_file.parquet");
现在的问题是我没有定义模式并且列看起来像这样(在 spark 中使用 printSchema() 显示的输出)
root
|-- _c0: string (nullable = true)
|-- _c1: string (nullable = true)
|-- _c2: string (nullable = true)
....
csv 在第一行有名称,但我猜它们被忽略了,问题是只有几列是字符串,我也有整数和日期。
我只使用 Spark,基本上没有使用 avro 或其他任何东西(从未使用过 avro)。
我有哪些选择来定义架构以及如何定义?如果我需要以另一种方式编写镶木地板文件,那么只要它是一个快速简单的解决方案就没有问题。
(我使用 spark 独立测试/不知道 scala)