我可以 auto-load csv headers 来自 Zeppelin 上的 scala spark window 的单独文件吗?

Can I auto-load csv headers from a separate file for a scala spark window on Zeppelin?

我有一个存储为大量 gzip 压缩 csv 文件的数据源。此来源的 header 信息是一个单独的文件。

我想将此数据加载到 spark 中进行操作 - 是否有一种简单的方法可以让 spark 计算出 schema/load 和 headers?字面上有数百列,它们可能会在运行之间发生变化,强烈希望不要手动执行此操作

这可以在 spark 中轻松完成: 如果您的头文件是:headers.csv 并且它只包含头文件,那么只需首先加载此文件并将头文件设置为 true :

val headerCSV  = spark.read.format("CSV").option("header","true").load("/home/shivansh/Desktop/header.csv")

然后将Columns以Array的形式取出来:

val columns = headerCSV.columns

然后读取另一个没有头信息的文件,将这个文件作为头传递:

spark.read.format("CSV").load("/home/shivansh/Desktop/fileWithoutHeader.csv").toDF(columns:_*)

这将导致 DF 具有组合值!