查询特定列的外部 table 时,列名也显示为一行
Column Name also appear as a row when querying the external table for specific column
我在 Azure Data Lake Store 中有一个文件。我正在使用 polybase 将数据从数据湖存储移动到数据仓库。
我遵循了提到的所有步骤 here。
假设我创建了外部 table 作为 External_Emp,它有 3 列:ID、姓名、部门。
当我运行正在执行以下查询时:
select * from External_Emp;
然后,它向我展示了所有正确的记录。
但是当我选择一个特定的 column/columns 时,它会连续显示列名。例如,如果我 运行 以下查询:
select Name from External_Emp;
则输出为:
Name
-----
Name
1
2
3
然而,输出应该是:
Name
------
1
2
3
同样,当我运行查询时:
select ID, Name from External_Emp;
然后显示如下输出:
ID | Name
---------
ID | Name
1 | abc
2 | xyz
3 | pqr
然而,输出应该是:
ID | Name
--------
1 | abc
2 | pqr
3 | xyz
为什么它在单独的行中显示列名?
这是一个错误吗?
我多次检查了 Azure 数据湖中 csv 文件中的数据。它没有重复的列名。
谢谢。
删除外部 Table 和外部文件格式。然后使用 FIRST_ROW=2
重新创建外部文件格式,这将跳过 documentation:
中提到的一行
CREATE EXTERNAL FILE FORMAT TextFileFormat
WITH
( FORMAT_TYPE = DELIMITEDTEXT
, FORMAT_OPTIONS ( FIELD_TERMINATOR = '|'
, STRING_DELIMITER = ''
, DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.fff'
, USE_TYPE_DEFAULT = FALSE
, FIRST_ROW = 2
)
);
我在 Azure Data Lake Store 中有一个文件。我正在使用 polybase 将数据从数据湖存储移动到数据仓库。 我遵循了提到的所有步骤 here。
假设我创建了外部 table 作为 External_Emp,它有 3 列:ID、姓名、部门。
当我运行正在执行以下查询时:
select * from External_Emp;
然后,它向我展示了所有正确的记录。 但是当我选择一个特定的 column/columns 时,它会连续显示列名。例如,如果我 运行 以下查询:
select Name from External_Emp;
则输出为:
Name
-----
Name
1
2
3
然而,输出应该是:
Name
------
1
2
3
同样,当我运行查询时:
select ID, Name from External_Emp;
然后显示如下输出:
ID | Name
---------
ID | Name
1 | abc
2 | xyz
3 | pqr
然而,输出应该是:
ID | Name
--------
1 | abc
2 | pqr
3 | xyz
为什么它在单独的行中显示列名? 这是一个错误吗?
我多次检查了 Azure 数据湖中 csv 文件中的数据。它没有重复的列名。 谢谢。
删除外部 Table 和外部文件格式。然后使用 FIRST_ROW=2
重新创建外部文件格式,这将跳过 documentation:
CREATE EXTERNAL FILE FORMAT TextFileFormat
WITH
( FORMAT_TYPE = DELIMITEDTEXT
, FORMAT_OPTIONS ( FIELD_TERMINATOR = '|'
, STRING_DELIMITER = ''
, DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.fff'
, USE_TYPE_DEFAULT = FALSE
, FIRST_ROW = 2
)
);