如何在Databricks SQL中使用csv.`路径`语法读取CSV并设置表头?
在Databricks SQL中用简洁语法读取CSV并设置首行为表头
你目前使用Databricks SQL的简洁语法直接读取CSV文件:
SELECT * FROM csv.`/Volumes/main/pokemon/data/pokemon.csv`
这条语句能正常执行,但需要开启“将首行作为表头”的配置。对应的Python API写法是:
df = spark.read.csv('/Volumes/main/pokemon/data/pokemon.csv', header='true')
你尝试搜索解决方法时,因为不知道这个SQL语法的名称,只找到了创建临时视图的方案:
CREATE OR REPLACE TEMPORARY VIEW pokemon_raw USING csv OPTIONS ( path '/Volumes/main/pokemon/data/pokemon.csv', header true ); SELECT * FROM pokemon_raw
但这种方法太繁琐,希望用最初的简洁语法实现表头设置需求。
解决方案
你可以直接在csv.路径后追加OPTIONS子句来指定读取参数,不需要创建临时视图,写法如下:
SELECT * FROM csv.`/Volumes/main/pokemon/data/pokemon.csv` OPTIONS (header true)
这个语法属于Databricks SQL的直接文件查询语法(也叫表值函数风格的文件读取),支持在路径后通过OPTIONS传递所有Spark CSV读取的参数,比如自动推断schema、指定分隔符等:
SELECT * FROM csv.`/Volumes/main/pokemon/data/pokemon.csv` OPTIONS ( header true, inferSchema true, delimiter ',' )
内容的提问来源于stack exchange,提问作者szelpe
相关产品推荐
相关产品推荐

