小编Anu*_*oop的帖子

如何通过运营商从Hive组获取数组/包元素?

我想按给定字段进行分组,并使用分组字段获取输出.以下是我想要实现的一个例子: -

想象一下名为'sample_table'的表,其中有两列如下: -

F1  F2
001 111
001 222
001 123
002 222
002 333
003 555
Run Code Online (Sandbox Code Playgroud)

我想编写Hive Query,它将提供以下输出: -

001 [111, 222, 123]
002 [222, 333]
003 [555]
Run Code Online (Sandbox Code Playgroud)

在猪中,这可以通过以下方式轻松实现: -

grouped_relation = GROUP sample_table BY F1;
Run Code Online (Sandbox Code Playgroud)

有人可以建议在Hive中有一个简单的方法吗?我能想到的是为此编写用户定义函数(UDF),但这可能是一个非常耗时的选项.

sql hadoop hive apache-pig bigdata

16
推荐指数
1
解决办法
2万
查看次数

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
Run Code Online (Sandbox Code Playgroud)

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';
Run Code Online (Sandbox Code Playgroud)

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

INSERT OVERWRITE DIRECTORY '/user/hadoop/output' SELECT * FROM graph_edges;
Run Code Online (Sandbox Code Playgroud)

3>现在,当我捕获文件时,字段不会被任何分隔符分隔: -

hadoop dfs -cat /user/hadoop/output/000000_0
Run Code Online (Sandbox Code Playgroud)

输出: -

001000
001000 …
Run Code Online (Sandbox Code Playgroud)

hadoop hive

12
推荐指数
3
解决办法
8万
查看次数

给 git revert 中的 -m 开关赋予什么值?

发出git revert <commit_hash>命令时,我收到如下错误消息:-

$ git revert e8801f7
error: commit e8801f7f3b800fee035693aa6bfd12868c15eec9 is a merge but no -m option was given.
fatal: revert failed
Run Code Online (Sandbox Code Playgroud)

-m我应该为git revert 的切换赋予什么值?

git github

8
推荐指数
1
解决办法
3247
查看次数

使用Google Charts DataTable角色时如何制作垂直注释?

我正在使用Google Chart Tools DataTable Roles功能来注释LineChart,如下面的链接所示: - https://developers.google.com/chart/interactive/docs/roles

但是注释是水平的而不是垂直的.例如,"开始使用电子表格"注释下面是垂直的,这是我想要的,但对我来说它不是垂直的. 在此输入图像描述

我使用以下代码添加注释列: -

addColumn({type:'string', role:'annotation'});
Run Code Online (Sandbox Code Playgroud)

请帮忙.

javascript gwt google-visualization

5
推荐指数
1
解决办法
8119
查看次数

"aws s3 ls"命令抛出"InvalidRequest"错误消息.怎么解决?

运行aws s3 ls命令后,我收到以下错误信息: -

您正试图在一个区域内斗,需要签名版本4.您可以通过使用--region参数明确提供正确的区域位置,解决这个问题操作,则:调用ListBuckets操作时,客户端错误(InvalidRequest)发生AWS_DEFAULT_REGION环境变量,或AWS CLI配置文件中的区域变量.您可以通过运行"aws s3api get-bucket-location --bucket BUCKET"获取存储桶的位置.

以下是更多细节和我的发现,可能有助于回答这个问题: -

  • 该命令正在从ap-south-1区域中运行的EC2实例执行.

  • 亚马逊文档称,2014年1月30日之后创建的新区域仅支持签名版本4.

  • 正如错误消息所示,我尝试给出命令aws --region ap-south-1 s3 ls但是此命令也给出了相同的错误消息.

  • 我已经运行yum update并且AWS CLI版本是最新的aws-cli/1.10.33 Python/2.7.10 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.4.23

  • 上面的aws s3 ls命令工作得很好,如果从us-east-1实例执行,则列出存储桶.

amazon-s3 amazon-ec2 amazon-web-services

5
推荐指数
1
解决办法
3718
查看次数