使用 csv 创建 table 与从另一个 table 创建有区别吗?
Is there a difference in creating tables with csv vs. from another table?
我在 Microsoft Azure Databricks 中使用以下代码创建了一个 table(但是,我认为这可以在任何 sql 环境中转换):
CREATE TABLE employee_data_csv (
column1,
column2,
column3 )
USING csv
OPTIONS (path "C:/pathway/xxxx", header "true", mode "FAILFAST")
有人告诉我用 USING csv
方法创建 table 会影响性能。有人建议我使用上面创建的 table 并像这样创建另一个 table:
CREATE TABLE employee_data
Select column1, column2, column3
FROM employee_data_csv
我没有注意到任何速度改进。这两个 table 或方法之间是否有任何性能变化?第二步是必须的吗?
由于数据为 CSV 格式,因此您需要像创建 table 时一样提供格式。
CTAS(将 table 创建为 select)不会转换基础格式,这是您需要提供的内容。
速度优势取决于几个因素。数据集大小、查询类型和集群大小都会对读取性能产生影响。
您可以运行以下SQL单元格来验证格式:
%sql
desc extended employee_data
Provider
字段将说明文件格式,例如本例中为 .csv。
要转换为镶木地板,您可以运行以下操作:
CREATE TABLE employee_data USING PARQUET as
Select column1, column2, column3
FROM employee_data_csv
我在 Microsoft Azure Databricks 中使用以下代码创建了一个 table(但是,我认为这可以在任何 sql 环境中转换):
CREATE TABLE employee_data_csv (
column1,
column2,
column3 )
USING csv
OPTIONS (path "C:/pathway/xxxx", header "true", mode "FAILFAST")
有人告诉我用 USING csv
方法创建 table 会影响性能。有人建议我使用上面创建的 table 并像这样创建另一个 table:
CREATE TABLE employee_data
Select column1, column2, column3
FROM employee_data_csv
我没有注意到任何速度改进。这两个 table 或方法之间是否有任何性能变化?第二步是必须的吗?
由于数据为 CSV 格式,因此您需要像创建 table 时一样提供格式。
CTAS(将 table 创建为 select)不会转换基础格式,这是您需要提供的内容。
速度优势取决于几个因素。数据集大小、查询类型和集群大小都会对读取性能产生影响。
您可以运行以下SQL单元格来验证格式:
%sql
desc extended employee_data
Provider
字段将说明文件格式,例如本例中为 .csv。
要转换为镶木地板,您可以运行以下操作:
CREATE TABLE employee_data USING PARQUET as
Select column1, column2, column3
FROM employee_data_csv