日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 Apache Pig 处理数据5

發布時間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Apache Pig 处理数据5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用 Apache Pig 從大數據集中獲得所需的信息

Apache Pig 是一個高級過程語言,適合于使用 Hadoop 和 MapReduce 平臺來查詢大型半結構化數據集。通過允許對分布式數據集進行類似 SQL 的查詢,Pig 可以簡化 Hadoop 的使用。本文將探索 Pig 背后的語言,并在一個簡單的 Hadoop 集群中發現其用途。

Hadoop 的普及和其生態系統的不斷壯大并不令人感到意外。Hadoop 不斷進步的一個特殊領域是 Hadoop 應用程序的編寫。雖然編寫 Map 和 Reduce 應用程序并不十分復雜,但這些編程確實需要一些軟件開發經驗。Apache Pig 改變了這種狀況,它在 MapReduce 的基礎上創建了更簡單的過程語言抽象,為 Hadoop 應用程序提供了一種更加接近結構化查詢語言 (SQL) 的接口。因此,您不需要編寫一個單獨的 MapReduce 應用程序,您可以用 Pig Latin 語言寫一個腳本,在集群中自動并行處理與分發該腳本。

Pig Latin 示例

讓我們從一個簡單的 Pig 示例開始介紹,并剖析該示例。Hadoop 的一個有趣的用法是,在大型數據集中搜索滿足某個給定搜索條件的記錄(在 Linux? 中被稱為 grep)。清單 1 顯示了在 Pig 中實現該過程的簡單性。在所顯示的三行代碼中,只有一行是真正的搜索。第一行只是將測試數據集(消息日志)讀取到代表元組集合的包中。用一個正則表達式來篩選該數據(元組中的惟一條目,表示為 $0 或 field 1),然后查找字符序列 WARN。最后,在主機文件系統中將這個包存儲在一個名為 warnings 的新文件中,這個包現在代表來自消息的包含 WARN 的所有元組。

清單 1. 一個簡單的 Pig Latin 腳本
messages = LOAD 'messages'; warns = FILTER messages BY $0 MATCHES '.*WARN+.*'; STORE warns INTO 'warnings';

如您所見,這個簡單的腳本實現了一個簡單的流,但是,如果直接在傳統的 MapReduce 模型中實現它,則需要增加大量的代碼。這使得學習 Hadoop 并開始使用數據比原始開發容易得多。

現在讓我們更深入地探討 Pig 語言,然后查看該語言的一些功能的其他示例。

示例演示:

1、準備數據

  messages文件 內容(含有兩條WARN的)

  This is WARNING message1

  This is INFOING message2

  This is WARNING message3

2、上傳數據

  hadoop dfs -put messages /input
3、運行pig進入grunt

  grunt> messages = load '/input/messages';

  grunt> warns = filter messages by $0 matches '.*WARN+.*';
  grunt> dump warns

  
    (This is WARNING message1)
    (This is WARNING message3)

  grunt> store warns into '/output/wranings'; 保存進入文件(位于hdfs上)

?

  參考:http://www.ibm.com/developerworks/cn/linux/l-apachepigdataquery/index.html?

?

轉載于:https://www.cnblogs.com/jsunday/p/3789690.html

總結

以上是生活随笔為你收集整理的使用 Apache Pig 处理数据5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。