1. 程式人生 > >pig讀取部分列 (全部列中的少部分列)

pig讀取部分列 (全部列中的少部分列)

pig流式資料,load資料時,不能讀入任意列。

但是,可以從頭讀,只能連續幾列。就是前幾列。比如10列資料,可以只讀前3列。但不能讀第3列:

如:資料testdata

[[email protected] lmj]$ cat testdata.txt 
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
1,2,3,4,5,6,7,8,9,10

pigscript讀入:

my = load '/home/wizad/lmj/testdata.txt' using PigStorage(',')
as(one:chararray,
two:int);

describe my;
dump my;

結果為

(1,2)

(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)
(1,2)

結構為

grunt> describe my;
my: {one: chararray,two: int}

只讀入其中兩列。

如果想讀入任意列,可以使用piggybank提供的hivecolumnarloader自行開發。

pig是java編寫的,所以也可以自己寫java的UDF,實現load時的格式 載入函式loadfunc,逐行讀入時,只留下其中任意列。就可以了。

如下兩個

pig自身的:

DEFINE SequenceFileLoader org.apache.pig.piggybank.storage.SequenceFileLoader();
自己編寫的:

DEFINE SequenceFileLoader com.vpon.wizad.etl.pig.SequenceFileCSVLoader();

相關推薦

pig讀取分列 (全部分列)

pig流式資料,load資料時,不能讀入任意列。 但是,可以從頭讀,只能連續幾列。就是前幾列。比如10列資料,可以只讀前3列。但不能讀第3列: 如:資料testdata [[email protected] lmj]$ cat testdata.txt  1,2,

C# 讀取指定文件夾全部文件,並按規則生成SQL語句!

fun .text line -m ava inf hid 語句 ade 本實例的目的在於: 1 了解怎樣遍歷指定文件夾中的全部文件 2 控制臺怎樣輸入和輸出數據 代碼: using System; using System.IO; nam

mysql將一個表的某一複製到另外一個表的一(聯表更新,假如全部)

這是mysql的寫法,然後其他語言的,可以自行google 假如有表 table1 table1 id name 1 null 2 null 3 null 4 null table表2 id na

Tensorflow (批量)讀取資料的案分析及TFRecord檔案的打包與讀取

內容概要: 單一資料讀取方式:   第一種:slice_input_producer() # 返回值可以直接通過 Session.run([images, labels])檢視,且第一個引數必須放在列表中,如[...] [images, labels] = tf.train.slice_input_pro

sql 如何同時更改一的多行值

sql如圖,我要把 pre_tel 列 都加上 010 或者其他區號,但是如何用同一條 sql 語句實現?sql 如何同時更改一列中的多行值

js讀取本地txt文件的json數據

input option cti nbsp code tails span details logs list.txt內容 [ {"optionKey":"1", "optionValue":"Canon in D"}, {"optionKey":"2", "op

jquery用的代碼

兩個 設置時間 des 元素 代碼 desc slide clas 展現 對於jquery而言,是一個前端後端都必要了解的,我這裏只展現幾個唄護士而且非常有用的代碼 toggle([speed],[easing],[fn]); 用於綁定兩個或多個事件處理器函數,以響應被選元

給出一個數組,計算數組了哪個數據的實現

數組 排序 題目:給一個數組,長度為99.裏面存儲了從0到99中100個字符,求計算少了那個數未在數組中?實現方法1:正向存儲的思維,時間和空間復雜度為o(1)import java.math; public class findMissDate{ public void main(Stri

js變量和全局變量的易混點

write bsp 顯示 作用域 ati cti 原因 -s 上下 1.以下輸出的是: undefined局部變量 <script type="application/javascript">  var scope="全局變量";  function cal()

javascript變量和全局變量的區別詳解

under ati 例子 方便 defined 幫助 介紹 但是 全局變量 javascript有兩種變量:局部變量和全局變量。當然,我們這篇文章是幫助大家真正的區別這兩種變量。 首先,局部變量是指只能在本變量聲明的函數內部調用。全局變量時整個代碼中都可以調用的變量。當然,

Pandas: 如何將一的文本拆分為多行? | Python

gid scene pmo lua ioe solid gige ble app Pandas: 如何將一列中的文本拆分為多行? 在數據處理過程中,經常會遇到以下類型的數據: 在同一列中,本該分別填入多行中的數據,被填在一行裏了,然而在分析的時候,需要拆分成為多

第41條:多用派發隊用同步鎖

線程 ati 之前 lock col class logs pan 同步機制   本條要點:(作者總結)      在 Objective-C 中,如果有多個線程要執行同一份代碼,那麽有時可能會出問題。這種情況下,通常要使用鎖來實現某種同步機制。在 GCD 出現之前,有

shell讀取文件行,

shell讀取文件行列cat ${FILE} | while read linedo echo $linedone-------------------------------------------while read LINE #每次讀取aa.list中的一行do echo $LINE #

SQL交換一數據的值(如男女性別)

have set iat table p s 題目 highlight running 女性 在刷LeetCode的時候遇到的SQL題目 627. Swap Salary Given a table salary, such as the one below, tha

shell讀取nginx配置文件nginx的端口

count 文件中 onf pri ace stat class pac lis #!/bin/shport=`nl /usr/local/openresty/nginx/conf/nginx.conf | sed -n ‘/listen/p‘ | awk ‘NR==1{p

Excel 2010 如何快速統計一相同數值出現的個數

選中 section 如果 數值 album 刪除重復 elf 出現 fcc https://jingyan.baidu.com/article/9113f81b2c16822b3214c785.html 最近經常看到論壇和百度知道的朋友提問關於“excel中如

通過正則表達式提取excel特定含有關鍵字的所有行數據

需要 bsp att 使用 sub sea ive nbsp end 在 Excel 中打開需要提取數據excel文件,使用 Alt+F11 快捷鍵打開 VBA 項目窗口,在左側的工作表名稱上點右鍵,選擇查看代碼,即可出現右側的編輯代碼窗口(如下圖) 在代碼窗口中輸入以下

Qt事件機制(是動作發生後,一種通知對象的消息,是被動與主動的總和。先處理自己隊的消息,然後再處理系統消息隊的消息)

str 發送 filter 簡化 後者 nts 類型 min() 鼠標滾輪 Qt事件機制 Qt程序是事件驅動的, 程序的每個動作都是由幕後某個事件所觸發.。 Qt事件的發生和處理成為程序運行的主線,存在於程序整個生命周期。 Qt事件的類型很多, 常見的qt的事件如下:

64位匯編第二講——64位匯編變量使用及擡棧方法29171230

add 我們 根據 them cal 因此 處理 data 對象 一.純寫64位匯編時局部變量處理和參數寄存器保存位置 純寫64位匯編和用VS2013寫64位C代碼生成的匯編會有一些格式上的區別,VS2013寫64位C代碼生成的匯編中是沒用到棧基址寄存器rbp的,但

mysql5.7基礎 delete...where 刪除一的指定內容

nihao 視頻 windows 學習資源 brush sele block blog 基礎 禮悟:   公恒學思合行悟,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉養身心,誠勸且行且珍惜。