Ben bir Domuz komut dosyası var - şu anda yerel modda çalışan - kategorilerin bir listesini içeren büyük bir dosya işlediği:
/root/level1/level2/level3
/root/level1/level2/level3/level4
...
Bir saklı yordam arayarak varolan veritabanına bu her eklemek gerekir. Ben Pig yeniyim ve UDF arayüzü biraz zor olduğu için, ben bir şey bir PHP komut dosyası aracılığıyla dosyanın içerik akışı halletmek için çalışıyorum.
Ben PHP script sadece olsa, ben geçiyordum kategori hatlarının yarısını görür bulma yaşıyorum. Daha doğrusu, ben bir rekor ceil( pig_categories/2 )
döndü bkz. 15 Bir sınır PHP komut dosyası aracılığıyla akış sonra 8 girdileri üretecek - son bir boş olacak.
-- Pig script snippet
ordered = ORDER mappable_categories BY category;
limited = LIMIT ordered 20;
categories = FOREACH limited GENERATE category;
DUMP categories; -- Displays all 20 categories
streamed = STREAM limited THROUGH `php -nF categorize.php`;
DUMP streamed; -- Displays 10 categories
# categorize.php
$category = fgets( STDIN );
echo $category;
Kaçırdığım ne herhangi bir düşünce. Ben bir süre için şimdi Domuz referans kılavuza göre döktüğüm ve bir PHP komut dosyası yoluyla akışı ile ilgili çok fazla bilgi olması görünmüyor. Ben de boşuna IRC # Hadoop kanal denedim. Herhangi bir rehberlik çok takdir.
Teşekkürler.
UPDATE
Bu EOL ile ilgili olduğunu belli oluyor. I fgets()
stream_get_line()
olarak kullanarak PHP komut dosyası değiştirirseniz, o zaman ben geri 10 öğeler olsun, ama önce olmalıdır kayıt atlanır ve görüntülenen alan bir sondaki boş plak var.
(Arts/Animation)
(Arts/Animation/Anime)
(Arts/Animation/Anime/Characters)
(Arts/Animation/Anime/Clubs_and_Organizations)
(Arts/Animation/Anime/Collectibles)
(Arts/Animation/Anime/Collectibles/Cels)
(Arts/Animation/Anime/Collectibles/Models_and_Figures)
(Arts/Animation/Anime/Collectibles/Models_and_Figures/Action_Figures)
(Arts/Animation/Anime/Collectibles/Models_and_Figures/Action_Figures/Gundam)
()
Bu sonuç kümesi, (Arts)
bir ilk öğe olmalıdır. Kapanış, ama kapatmak için bazı boşluk hala var.