我有一个Hadoop数据存储,我在Pig中访问,并没有很多关于它的文档,再加上我是Pig的新手,所以我正在寻找Pig的“SHOW TABLES”。当我连接到一个MySQL数据库时,我可以做到这一点,并获得有关数据的一般意义;我发现了几个教程,但没有任何关键。如果没有,有没有其他方法可以将我自己定位到我一无所知的Hadoop数据存储?是否有一个相当于“SHOW TABLES”的apache猪?
ETA:这会在交互模式下运行Pig而不是加载脚本。可能很明显,但我想我应该提及它。
我有一个Hadoop数据存储,我在Pig中访问,并没有很多关于它的文档,再加上我是Pig的新手,所以我正在寻找Pig的“SHOW TABLES”。当我连接到一个MySQL数据库时,我可以做到这一点,并获得有关数据的一般意义;我发现了几个教程,但没有任何关键。如果没有,有没有其他方法可以将我自己定位到我一无所知的Hadoop数据存储?是否有一个相当于“SHOW TABLES”的apache猪?
ETA:这会在交互模式下运行Pig而不是加载脚本。可能很明显,但我想我应该提及它。
猪没有表的概念。它可以读取HDFS文件系统上的任何文件,并将解析结果存储在关系中。
请注意,您也可以运行HDFS文件系统commands from the grunt shell
这也可能是你最好先熟悉HDFS,并确保您可以轻松浏览文件系统的第一,所以你可以找到你想要用猪来处理什么数据。
看起来你错了猪。正如@ seedhead指定的那样,你使用Pig来处理文件。人们经常将它误认为是数据库(如Hbase)或仓库(如Hive),但事实并非如此。而且,就可视化数据而言,您可以通过Pig shell列出文件和目录。如果你需要看多少记录(或线)特定的文件了,你可以做这样的事情:
Records = LOAD '/path_of_the_file';
Records_Group= GROUP Records ALL;
Records_Count = FOREACH Records_Group GENERATE COUNT(Records);
我可以看到“节目表”最接近的事是“历史”命令,它有效地列出了所有创建的别名。
grunt> history
1 a = LOAD 'iris.csv' USING PigStorage (',') AS
(sl:double,sw:double,pl:double,pw:double,spec:int);
2 b = FILTER a BY spec==1;
3 c = GROUP b BY pw;
4 d = FOREACH c GENERATE COUNT(b);
我们也遇到了类似的情况,并应用于计算器的所有解决方案,但没有已经解决了我的问题。现在解决这些问题的方法是,您应该使用猪的存储命令并为其提供专用文件夹。 现在成立了,我们宁愿是,
grunt> fs -mkdir /user/hduser/AllPigTableStructures/
grunt> fs -chmod 777 /user/hduser/AllPigTableStructures/
现在我们将所有的表信息存储到这些文件夹命名为“AllPigTableStructures”。 那么你应该使用“存储”功能如下代码,
grunt> store extract_details into '/user/hduser/AllPigTableStructures/SchemaTwit' using PigStorage('\t', '-schema');
这些代码的最后一行应该是
/*2017-09-18 02:13:56,566 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Success!
*/
现在你应该可以看到这样的命名SchemaTwit一个文件夹,
grunt> fs -ls /user/hduser/AllPigTableStructures
Found 12 items
drwxr-xr-x - hduser supergroup 0 2017-09-18 02:13 /user/hduser/AllPigTableStructures/SchemaTwit
最后如果你会看到SchemaTwit目录的内容,那么它将包含你的表格的模式,下面关于你的表格的所有细节都是它的命令, -xxx类型的文件将包含您的数据部分。
grunt> fs -ls /user/hduser/AllPigTableStructures/SchemaTwit
Found 4 items
-rw-r--r-- 2 hduser supergroup 8 2017-09-18 02:26 /user/hduser/AllPigTableStructures/SchemaTwit/.pig_header
-rw-r--r-- 2 hduser supergroup 239 2017-09-18 02:26 /user/hduser/AllPigTableStructures/SchemaTwit/.pig_schema
-rw-r--r-- 2 hduser supergroup 0 2017-09-18 02:26 /user/hduser/AllPigTableStructures/SchemaTwit/_SUCCESS
-rw-r--r-- 2 hduser supergroup 140 2017-09-18 02:26 /user/hduser/AllPigTableStructures/SchemaTwit/part-m-00000
现在你可以用下面的cat命令在模式文件,看看你的一部分,M-XXX的表的模式,用于浏览您的数据部分现在
grunt> fs -cat /user/hduser/AllPigTableStructures/SchemaTwit/.pig_schema
{"fields":[{"name":"id","type":50,"description":"autogenerated from Pig Field Schema","schema":null},{"name":"text","type":50,"description":"autogenerated from Pig Field Schema","schema":null}],"version":0,"sortKeys":[],"sortKeyOrders":[]}
与模式这些命令加载你的表帮助,
WithSchema = LOAD '/user/hduser/AllPigTableStructures/SchemaTwit';
PS:我们正在运行我们的猪进入的MapReduce模式。
您可以结算HCatalog以获得类似配置单元的模式支持。 – ihadanny 2013-05-13 21:49:35
我JUST认为它不是一个数据存储,它是一个文件系统。我一直称它为数据存储,我的丈夫最终告诉我停止这样做,因为它很混乱。这是一个文件系统。我可以做文件系统命令! DERP!谢谢@seedhead – barclay 2013-05-14 18:42:35