我在 azure data Lake 存储中有一个文件。我正在使用 Polybase 将数据从数据湖存储移动到数据仓库。 我按照here提到的所有步骤进行操作.
假设我创建了外部表External_Emp,它有 3 列:ID、名称、部门。
当我运行以下查询时:
select * from External_Emp;
然后,它向我显示所有正确的记录。 但是当我选择一个或多个特定列时,它会在一行中显示列名称。例如,如果我运行以下查询:
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文件中的数据。它没有重复的列名称。 谢谢。
最佳答案
删除外部表和外部文件格式。然后使用 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 - 在外部表中查询特定列时,列名称也显示为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49744096/