sql - Select * 的行计数结果 MISMATCH 和大文件的 Hive 外部表的 Select count(1)
问题描述
我正在运行配置单元外部表查询。问题:
“ 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 删除了用作 Hive 外部表源的 csv 文件中的标头
write_delim(df_data,delim = "|",col_names = FALSE, output_file)#
从 CREATE EXTERNAL TABLE 命令中删除了以下行
TBLPROPERTIES('skip.header.line.count'='1'
以上步骤解决了我们的问题。
问题发生在大文件中。在我们的站点中,HDFS 块大小为 128MB,如果我们将文件大小除以 128MB 给我们一个数字,我得到的结果与差异相同。所以我认为问题出在标题上。
注意:我们使用管道'|' 作为分隔符,因为我们在使用 ',' 时遇到了一些其他问题
推荐阅读
- sabre - Sabre StructureFareRules 格式基础不可用错误
- kotlin - 我的游戏自定义输入适配器没有运行渲染系统
- wordpress - 在店面中的类别名称下方添加额外的小部件区域
- jquery - Jquery方法无法获取特定键的值
- scala - 创建一个 scala 对象并获取该对象的名称
- sql - 针对多个类别中的项目的总价格分组
- scala - 未找到:https://repo1.maven.org/maven2/org/jetbrains/sbt-idea-shell_2.12_1.0/2017.2/sbt-idea-shell-2017.2.pom
- html - 列/图像高度大于我想要的(Outlook 2007)
- reactjs - ESLint 限制使用 React.StatelessComponent 和 React.FunctionalComponent
- php - WooCommerce 订单操作 Metabox 下拉菜单中缺少自定义操作