Hive INSERT OVERWRITE DIRECTORY 命令输出不由分隔符分隔。为什么?

2024-01-17

我正在加载的文件由“ ”(空格)分隔。下面是文件。该文件驻留在 HDFS 中:-

001 000
001 000
002 001
003 002
004 003
005 004
006 005
007 006
008 007
099 007

1> 我正在创建一个外部表并通过发出以下命令加载文件:-

CREATE EXTERNAL TABLE IF NOT EXISTS graph_edges (src_node_id STRING COMMENT 'Node ID of Source node', dest_node_id STRING COMMENT 'Node ID of Destination node') ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/user/hadoop/input';

2> 之后,我只需通过发出以下命令将表插入到另一个文件中:-

INSERT OVERWRITE DIRECTORY '/user/hadoop/output' SELECT * FROM graph_edges;

3> 现在,当我cat该文件时,字段不由任何分隔符分隔:-

hadoop dfs -cat /user/hadoop/output/000000_0

Output:-

001000
001000
002001
003002
004003
005004
006005
007006
008007
099007

有人可以帮我吗?为什么删除分隔符以及如何分隔输出文件?

在 CREATE TABLE 命令中我尝试过DELIMITED BY '\t'但后来我得到了不必要的 NULL 列。

任何指示都非常有帮助。我使用的是 Hive 0.9.0 版本。


问题是 HIVE 不允许您指定输出分隔符 -https://issues.apache.org/jira/browse/HIVE-634 https://issues.apache.org/jira/browse/HIVE-634

解决方案是创建用于输出的外部表(带有分隔符规范)并插入覆盖表而不是目录。

--

假设 HDFS 中有 /user/hadoop/input/graph_edges.csv,

hive> create external table graph_edges (src string, dest string) 
    > row format delimited 
    > fields terminated by ' ' 
    > lines terminated by '\n' 
    > stored as textfile location '/user/hadoop/input';

hive> select * from graph_edges;
OK
001 000
001 000
002 001
003 002
004 003
005 004
006 005
007 006
008 007
099 007

hive> create external table graph_out (src string, dest string) 
    > row format delimited 
    > fields terminated by ' ' 
    > lines terminated by '\n' 
    > stored as textfile location '/user/hadoop/output';

hive> insert into table graph_out select * from graph_edges;
hive> select * from graph_out;
OK
001 000
001 000
002 001
003 002
004 003
005 004
006 005
007 006
008 007
099 007

[user@box] hadoop fs -get /user/hadoop/output/000000_0 .

返回如上,带有空格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive INSERT OVERWRITE DIRECTORY 命令输出不由分隔符分隔。为什么? 的相关文章

随机推荐

  • 如何在 Zend Framework 2 中配置学说扩展?

    我已将此行添加到我的composer json中 gedmo doctrine extensions dev master 这是在我的模块的 module config php 中 doctrine gt array driver gt a
  • 将从文件读取的值作为输入传递给 Oracle 中的 SQL 查询

    cat file txt 12354 13456 13498 bin bash for i in cat file txt do sqlplus XXXXX XXXXX DB NAME lt lt EOF select from TABLE
  • Cognos 8 查询查找所有报表和列名称

    我想查询 Cognos 8 中的元数据以查找所有报告和列名称 如果可能的话 我想包含列定义 我可以使用 Cognos 报告来执行此操作还是需要查询某个存储库 Thanks 您可以使用以下查询从内容存储中选择报告列表 SELECT CMOBJ
  • 如何刷新recyclerview的上一个项目行视图的视图

    大家好 希望你们一切都好 我正在开发一个 Android 应用程序 它将播放不同的动物声音 我正在使用回收视图 如下面的屏幕截图所示 现在我面临一个问题 我的行中有一个播放按钮 每当我从项目 0 或在视图内显示暂停选项的任何位置播放声音时
  • 如何使用 PySide2 连接 Python 和 QML?

    我想在 Ubuntu 上编写一个简单的桌面应用程序 我认为一个简单的方法是使用 Qt 和 QML 作为 GUI 使用 Python 作为逻辑语言 因为我对 Python 有点熟悉 现在我花了几个小时尝试以某种方式连接 GUI 和逻辑 但它不
  • 如何加快Spacy的nlp调用速度?

    我必须处理数十万条文本 我发现以下内容中花费时间最长的事情 nlp English ruler EntityRuler nlp patterns ruler add patterns patterns nlp add pipe ruler
  • 物理/逻辑/虚拟内存地址之间的差异

    我对操作系统中的术语物理 逻辑 虚拟地址有点困惑 我使用 Linux open SU SE 这是我的理解 物理地址 当处理器处于系统模式时 处理器使用的地址是物理地址 逻辑地址 当处理器处于用户模式时 使用的地址是逻辑地址 无论如何 通过添
  • 如何重新启动应用程序(React Native 和 Expo)

    我使用 expo 所以我无法访问 android 文件夹 我想第一次重新启动我的应用程序 我怎样才能做到这一点 I use 反应本机重启 https github com avishayil react native restart 但不起
  • 范围规则如何与类一起使用?

    考虑以下 python 代码片段 x 1 class Foo x 2 def foo x 3 class Foo print x prints 3 Foo foo 正如预期的那样 这会打印 3 但是 如果我们在上面的代码片段中添加一行 行为
  • ARM TrustZone 开发

    我想知道是否有人有关于可以使用 ARM TrustZone 的开发板的信息 我有 BeagleBoard XM 它使用 TI 的 OMAP3530 和支持信任区的 Cortex A8 处理器 但是 TI 确认他们已禁用板上的功能 因为它是通
  • 由内而外构建管道代理

    是否可以创建一个函数 以便Proxy from pipes http hackage haskell org package pipes可以从里到外建造吗 由内而外 我的意思是从连接上游和下游连接的函数创建一个代理 最理想 但不可能 的签名
  • 创建适配器以用对象填充 Spinner [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 Android 应用程序Spinner并想用我自己的对象动态填充它 这些对象确实已经存在List
  • 如何在python中导入sikuli模块?

    我在使 sikuli python 单元测试正常工作时遇到问题 并且很高兴获得一些帮助 我在互联网上进行了广泛的搜索 但没有任何有效的方法 我的Python知识非常有限 我想这没有帮助 我用的是win7 32位 西库里 1 0 rc3 r9
  • 通过 MailChimp API v2.0 将用户添加到兴趣组

    我想通过 MailChimp API 将订阅者添加到兴趣组 这是我的 merge vars array merge vars array GROUPINGS gt array 0 gt array id gt 17385 The group
  • 如何覆盖编辑器服务

    我正在尝试采用自定义方式来实现转到定义 这需要覆盖编辑器服务 尤其是openEditor and findModel 方法 据我所见 我尝试遵循此评论 https github com microsoft monaco editor iss
  • 我不想显示来自 ParsleyJS 的错误消息

    我正在使用 ParsleyJS 库来验证我的表单 但如果字段无效 我只想应用错误类 但不想显示错误消息 如果我使用该房产data show errors false 那么类或错误都不会显示 我用的是这个方法display none在CSS中
  • 如果没有 global.asax,ASP.NET 网页的路由如何工作

    安装了 ASP Net 4 0 的 Web 服务器 部署了 Web Pages 2 0 DLL bin 用 cshtml razor 编写的页面 但路由不起作用 当仅使用网页而不是完整的 MVC 我在 global asax 中定义路由 时
  • 动态选项对话框(使用反射)

    有谁知道一个好的组件 C WinForms 它允许创建一个选项 设置 表单 给定一个带有一堆属性的自定义类 我并不是在寻找闪亮的东西 而是仅仅比属性网格更好的东西 我可以轻松处理视觉部分 但我只是不想浪费时间进行反射来添加和绑定控件 如果它
  • 用于选择所有输入类型的 SCSS/CSS 选择器

    我有一些输入类型有这个 scss 设置 来自框架 textarea input type text input type password input type datetime input type date input type mon
  • Hive INSERT OVERWRITE DIRECTORY 命令输出不由分隔符分隔。为什么?

    我正在加载的文件由 空格 分隔 下面是文件 该文件驻留在 HDFS 中 001 000 001 000 002 001 003 002 004 003 005 004 006 005 007 006 008 007 099 007 1 gt