我可以从单独的文件中为 Zeppelin 上的 Scala 火花窗口自动加载 csv 标头吗?

blu*_*lds 2 csv scala apache-spark apache-zeppelin

我有一个数据源,它存储为大量的 gzipped csv 文件。此源的标头信息是一个单独的文件。

我想将这些数据加载到 spark 中进行操作 - 有没有一种简单的方法可以让 spark 找出模式/加载标题?字面上有数百列,并且它们可能会在运行之间发生变化,强烈建议不要手动执行此操作

Shi*_*nsh 5

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

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

然后以数组的形式取出列:

val columns = headerCSV.columns
Run Code Online (Sandbox Code Playgroud)

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

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

这将导致具有组合值的 DF!