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