sql - 来自 SQL 的 Spark(Databricks)非托管表不处理标头
问题描述
尝试使用 SQL API 从 CSV 文件在 Spark (Databricks) 中创建非托管表。但是第一行没有被用作标题。
图 2 显示使用 Dataframe API 创建非托管表时第一行是正确的。Dataframe 是从同一个 csv 文件加载的。
但是,图 1 显示,在 SQL 中从 CSV 文件数据源创建非托管表时,不会将第一行作为标题处理。我是否遗漏了一些“标题”选项?如果是这样,那将如何编码?
数据框 API
解决方案
您只需要OPTIONS
按照文档中的说明提供即可。
在该选项块中,您可以列出与特定于 Spark CSV 阅读器的选项匹配的键/值对,例如,options ('header' = 'true', 'sep' = ',')
将强制 Spark 忽略标题行,并将分隔符设置为逗号。您还可以添加'inferSchema' = true
into 选项,在这种情况下,您可以省略列声明 - Spark 会为您推断它(对于小型数据集可以,但对于大型数据集则不行):
create table test.test using csv
options ('header' = 'true', 'sep' = ',', 'inferSchema' = true)
location '/databricks-datasets/Rdatasets/data-001/csv/COUNT/affairs.csv'
推荐阅读
- delphi - Interbase 在 Delphi 10.3.3 Rio 中无法连接
- javascript - 创建一个 Node.js 服务器,该服务器将生成一个浏览器页面,该页面创建一个包含 25 个州及其首都的排序列表
- node.js - 节点 - 测试字符串是否包含数组元素用相同数组的随机元素替换他(同义词)
- elasticsearch - 如何在 ElasticSearch 加载管道中解码 JSON
- python - 我正在尝试使用拍摄方法找到一个周期轨道
- sorting - 谷歌工作表自动排序脚本修改仅在指定列更改时触发
- python - 图标桌面通过单击启动 python 脚本(Ubuntu)问题
- java - 使用 Swagger 1.5 使用 Map 属性配置 Pojo 不会生成“additionalProperties”
- flutter - 在文本中检测 @ 并将其显示为链接 (Flutter)
- r - 在 R 中加入时间序列