来自 SQL 的 Spark (Databricks) 非托管 table 未处理 headers

Spark (Databricks) unmanaged table from SQL not processing headers

尝试使用 SQL API 从 CSV 文件在 Spark (Databricks) 中创建非托管 table。但是第一行没有被用作 headers.

图 2,显示使用 Dataframe API 创建非托管 table 时第一行是正确的。 Dataframe 是从同一个 csv 文件加载的。

但是,图 1 表明,当从 SQL 中的 CSV 文件数据源创建非托管 table 时,不会将第一行处理为 headers。我是否遗漏了一些“headers”选项? 如果是这样,那将如何编码?

数据框API

您只需按照文档中的说明提供 OPTIONS

在该选项块中,您可以列出与 options specific to the Spark CSV reader 匹配的 key/value 对,例如,options ('header' = 'true', 'sep' = ',') 将强制 Spark 忽略 header 行,并且将分隔符设置为逗号。您还可以将 'inferSchema' = true 添加到选项中,在这种情况下您可以省略列声明 - Spark 将为您推断它(对于小数据集没问题,但对于大数据集则不行):

create table test.test using csv 
options ('header' = 'true', 'sep' = ',', 'inferSchema' = true) 
location '/databricks-datasets/Rdatasets/data-001/csv/COUNT/affairs.csv'