我一直很享受 JQ
(文件)。
twitter的公共api提供了格式良好的json文件。我可以访问大量的hadoop集群。我决定去那里,而不是把它们装进去 Pig
使用 Elephantbird
,试用 JQ
在mapper流看看它是否更快。
我的最后一个问题是:
nohup hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-2.5.1.jar\
-files $HOME/bin/jq \
-D mapreduce.map.memory.mb=2048\
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-mapper "./jq --raw-output 'select((.lang == \"en\") and (.entities.hashtags | length > 0)) | .entities.hashtags[] as \$tags | [.id_str, .user.id_str, .created_at, \$tags.text] | @csv'" \
-reducer NONE \
-input /path/to/input/*.json.gz \
-output /path/to/output \
&
我正在分发我的本地 jq
可执行到每个计算节点,并告诉他们运行我的命令与它一起为他们的 stdin
溪流。
这个查询足够长,以至于我开始在中引用和格式化问题 bash
以及 JQ
.
我希望我能写下这样的话:
nohup hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-2.5.1.jar\
-files $HOME/bin/jq,$PROJECT_DIR/cmd.jq \
-D mapreduce.map.memory.mb=2048\
-D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \
-mapper "./jq --raw-output --run-cmd-file=cmd.jq" \
-reducer NONE \
-input /path/to/input/*.json.gz \
-output /path/to/output \
&
我可以把我的命令放在一个文件中,把它发送到计算节点并用一个选项调用它。
1条答案
按热度按时间wi3ka0sx1#
你好像错过了比赛
-f FILE
选择!