我正在吃晚饭 2 GB 我的数据库中的数据 HDFS .有没有可能随机得到这些数据。就像在unix命令行中一样
2 GB
HDFS
cat iris2.csv |head -n 50
izj3ouym1#
编写此命令
sudo -u hdfs hdfs dfs -cat "path of csv file" |head -n 50
50为行数(用户可根据需要定制)
gcmastyq2#
这个 head 以及 tail linux上的命令分别显示前10行和后10行。但是,这两个命令的输出不是随机采样的,它们的顺序与文件本身相同。linux洗牌- shuf 命令帮助我们生成输入行的随机排列&将此命令与hadoop命令结合使用会很有帮助,如下所示: $ hadoop fs -cat <file_path_on_hdfs> | shuf -n <N> 因此,在这种情况下,如果 iris2.csv 是hdfs上的一个文件,您希望从数据集中随机抽取50行: $ hadoop fs -cat /file_path_on_hdfs/iris2.csv | shuf -n 50 注:linux sort 也可以使用命令,但是 shuf 命令更快,随机采样数据更好。
head
tail
shuf
$ hadoop fs -cat <file_path_on_hdfs> | shuf -n <N>
iris2.csv
$ hadoop fs -cat /file_path_on_hdfs/iris2.csv | shuf -n 50
sort
enxuqcxy3#
hadoop fs -cat /user/hive/warehouse/vamshi_customers/* |tail
我认为头部部分是按照@viacheslav rodionov发布的答案工作的很好,但对于尾部部分,我发布的一个工作的很好。
9gm1akwq4#
本地头
hadoop fs -cat /your/file | head
在这里是有效的,因为猫将关闭流一旦头部将完成阅读所有的行。为了获得尾部,hadoop中有一个特别有效的命令:
hadoop fs -tail /your/file
不幸的是,它返回数据的最后千字节,而不是给定的行数。
7lrncoxx5#
我对hdfs集群上的avro文件使用tail和cat,但是结果没有以正确的编码打印出来。我试过这个,效果很好。
hdfs dfs -text hdfs://<path_of_directory>/part-m-00000.avro | head -n 1
将1更改为更高的整数以从avro文件打印更多样本。
gywdnpxw6#
工作代码:
hadoop fs -cat /tmp/a/b/20200630.xls | head -n 10 hadoop fs -cat /tmp/a/b/20200630.xls | tail -3
pokxtpni7#
你也可以在hadoop中使用head命令!语法应该是
hdfs dfs -cat <hdfs_filename> | head -n 3
这将只打印文件中的三行。
rn0zuynd8#
我的建议是将数据加载到配置单元表中,然后可以执行以下操作:
SELECT column1, column2 FROM ( SELECT iris2.column1, iris2.column2, rand() AS r FROM iris2 ORDER BY r ) t LIMIT 50;
编辑:这是该查询的更简单版本:
SELECT iris2.column1, iris2.column2 FROM iris2 ORDER BY rand() LIMIT 50;
ukdjmx9f9#
hdfs dfs -cat yourFile | shuf -n <number_of_line>
将为你做的把戏。虽然它不适用于mac os。您可以安装gnu coreutils。
9条答案
按热度按时间izj3ouym1#
编写此命令
50为行数(用户可根据需要定制)
gcmastyq2#
这个
head
以及tail
linux上的命令分别显示前10行和后10行。但是,这两个命令的输出不是随机采样的,它们的顺序与文件本身相同。linux洗牌-
shuf
命令帮助我们生成输入行的随机排列&将此命令与hadoop命令结合使用会很有帮助,如下所示:$ hadoop fs -cat <file_path_on_hdfs> | shuf -n <N>
因此,在这种情况下,如果iris2.csv
是hdfs上的一个文件,您希望从数据集中随机抽取50行:$ hadoop fs -cat /file_path_on_hdfs/iris2.csv | shuf -n 50
注:linuxsort
也可以使用命令,但是shuf
命令更快,随机采样数据更好。enxuqcxy3#
我认为头部部分是按照@viacheslav rodionov发布的答案工作的很好,但对于尾部部分,我发布的一个工作的很好。
9gm1akwq4#
本地头
在这里是有效的,因为猫将关闭流一旦头部将完成阅读所有的行。
为了获得尾部,hadoop中有一个特别有效的命令:
不幸的是,它返回数据的最后千字节,而不是给定的行数。
7lrncoxx5#
我对hdfs集群上的avro文件使用tail和cat,但是结果没有以正确的编码打印出来。我试过这个,效果很好。
将1更改为更高的整数以从avro文件打印更多样本。
gywdnpxw6#
工作代码:
pokxtpni7#
你也可以在hadoop中使用head命令!语法应该是
这将只打印文件中的三行。
rn0zuynd8#
我的建议是将数据加载到配置单元表中,然后可以执行以下操作:
编辑:这是该查询的更简单版本:
ukdjmx9f9#
将为你做的把戏。虽然它不适用于mac os。您可以安装gnu coreutils。