2013-05-13 3 views
2

У меня есть хранилище данных Hadoop, к которому я обращаюсь в Pig, и не так много документации по нему, плюс я новичок в Pig, поэтому я ищу эквивалент PIG «SHOW TABLES». Когда у меня есть соединение с MySQL db, я могу это сделать и получить общее представление о том, какие данные там; Я нашел несколько учебников, но ничего не сказал. Если нет, есть ли другой способ ориентироваться в хранилище данных Hadoop, о котором я ничего не знаю?Есть ли эквивалент апачей «SHOW TABLES»?

ETA: Это было бы при запуске Pig в интерактивном режиме, а не при загрузке скрипта. Наверное, очевидно, но я подумал, что должен упомянуть об этом.

ответ

3

Свинья не имеет концепции таблиц. Он может читать любой файл, который находится в вашей файловой системе HDFS, и сохраняет результат анализа в отношении.

Обратите внимание, что вы можете также запустить HDFS файловую систему commands from the grunt shell

Это, вероятно, лучше ознакомиться с HDFS первым и убедитесь, что вы можете комфортно перемещаться по файловой системе первой, так что вы можете найти то, что данные, которые вы хотите обработать с рис.

+0

Вы можете проверить HCкаталог для поддержки типа улей. – ihadanny

+0

i JUST grokked, что это не хранилище данных, это файловая система. я продолжаю называть это хранилищем данных, мой муж, наконец, сказал мне прекратить это делать, поскольку это запутывает. это файловая система. я могу делать команды файловой системы! DERP! thanks @seedhead – barclay

-1

Похоже, вы ошиблись Свинья. Как указано в @seedhead, вы обрабатываете файлы с помощью Pig. Люди нередко ошибочно воспринимают его как базу данных (например, Hbase) или склад (например, Hive), а это не так. И, что касается визуализации данных, вы можете перечислить файлы и каталоги через оболочку Pig. А если вам нужно, чтобы узнать, сколько записей (или линию) ОПРЕДЕЛЕННЫЕ файлы имеют, вы могли бы сделать что-то вроде этого:

Records = LOAD '/path_of_the_file'; 
Records_Group= GROUP Records ALL; 
Records_Count = FOREACH Records_Group GENERATE COUNT(Records); 
+0

Вы просто переформулировали мой вопрос («вы могли бы перечислить файлы и каталоги через оболочку свиней») и не оставили ответ. Хорошо, как? – barclay

+0

И как это? Вы видели ссылку, указанную @seedhead? Она показывает, как запускать команды файловой системы HDFS из оболочки grunt. – Tariq

3

Ближайших, что я могу видеть, чтобы «шоу таблицы» является командой «истории», который эффективно перечисляет все созданные псевдонимы.

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); 
0

Мы также столкнулись с подобной ситуацией и применили все решения stackoverflow, но никто не разрешил мою проблему. Теперь решение этой проблемы заключается в том, что вы должны использовать команду store pig, а также предоставить для нее выделенную папку. Теперь настройки, которые мы предпочитаем это,

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 

Теперь вы можете использовать следующую команду кошки на файл схема, чтобы увидеть схему вашей таблицы части-м-ххх для просмотра ваших данных части

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.

Смежные вопросы