Select * 的行计数结果不匹配 * 和 Select count(1) 对于 Hive External table 对于大文件
Row count results MISMATCH for Select * and Select count(1) for Hive External table for Big Files
我是 运行 配置单元外部 table 查询。 问题:
“Select * from table1
”配置单元显示的行数与“Select count(*) from table1
”不同。它应该匹配但不匹配不知道为什么?结果匹配 20 MB 左右的小数据,但不匹配大数据 table 即 600 MB 它们不匹配..有人遇到过这个问题吗??
下面是我 运行 显示结果的一些查询。我的源文件是 RDS 文件,我将其转换为 csv 文件并将其上传到 HDFS 并创建外部 table。
其他详细信息
注:
我只遇到大文件的这个问题,例如大小 200 MB 或更大,但对于小文件,例如 80 MB,则没有任何用处。
SELECT count(*) FROM dbname1.cy_tablet where Ranid Is NULL # Zero results
我们解决了这个问题,现在所有计数都匹配了。
我们通过使用 col_names = FALSE
在用作 Hive 外部表源的 csv 文件中删除了 headers
write_delim(df_data,delim = "|",col_names = FALSE, output_file)#
从 CREATE EXTERNAL TABLE 命令中删除了以下行
TBLPROPERTIES('skip.header.line.count'='1'
以上步骤解决了我们的问题。
问题出现在大文件中。在我们的站点中,HDFS 块大小为 128MB,如果我们将文件大小除以 128MB 得到一个数字,我得到的是相同的差异。所以我认为问题出在 headers.
注意:我们使用管道“|”作为分隔符,因为我们在使用 ','
时遇到了一些其他问题
我是 运行 配置单元外部 table 查询。 问题:
“Select * from table1
”配置单元显示的行数与“Select count(*) from table1
”不同。它应该匹配但不匹配不知道为什么?结果匹配 20 MB 左右的小数据,但不匹配大数据 table 即 600 MB 它们不匹配..有人遇到过这个问题吗??
下面是我 运行 显示结果的一些查询。我的源文件是 RDS 文件,我将其转换为 csv 文件并将其上传到 HDFS 并创建外部 table。
其他详细信息
注: 我只遇到大文件的这个问题,例如大小 200 MB 或更大,但对于小文件,例如 80 MB,则没有任何用处。
SELECT count(*) FROM dbname1.cy_tablet where Ranid Is NULL # Zero results
我们解决了这个问题,现在所有计数都匹配了。 我们通过使用 col_names = FALSE
在用作 Hive 外部表源的 csv 文件中删除了 headerswrite_delim(df_data,delim = "|",col_names = FALSE, output_file)#
从 CREATE EXTERNAL TABLE 命令中删除了以下行
TBLPROPERTIES('skip.header.line.count'='1'
以上步骤解决了我们的问题。
问题出现在大文件中。在我们的站点中,HDFS 块大小为 128MB,如果我们将文件大小除以 128MB 得到一个数字,我得到的是相同的差异。所以我认为问题出在 headers.
注意:我们使用管道“|”作为分隔符,因为我们在使用 ','
时遇到了一些其他问题