hadoop中讀取protobuf資料
在mapreduce中讀取protobuf資料時,會遇到一個坑
BytesWritable。當你把byte[]資料儲存到BytesWritable後,通過BytesWritable.getBytes()再讀到的資料並不一定是原資料,可能變長了很多,這是因為BytesWritable採用了自動記憶體增長演算法,你儲存的資料長度為size時,它可能將資料儲存到了長度為capacity(capacity>size)的buffer中,這時候,你通過BytesWritable.getBytes()得到的資料最後一些字元是多餘的,如果裡面儲存的是protobuf序列化後的資料,則無法反序列化,這時候可以使用BytesWritable.setCapacity(BytesWritable.getLength())將後面多餘空間剔除掉,然後就可以使用protobuf反序列為原始資料。
關鍵程式碼如下
conf.setInputFormat(SequenceFileAsBinaryInputFormat.class);
public void map(Object key, BytesWritable values, OutputCollector output, Reporter reporter) throws IOException { values.setCapacity(values.getLength());// very important !!! byte[] data = values.getBytes(); // more code }
相關推薦
hadoop中讀取protobuf資料
在mapreduce中讀取protobuf資料時,會遇到一個坑 BytesWritable。當你把byte[]資料儲存到BytesWritable後,通過BytesWritable.getBytes()再讀到的資料並不一定是原資料,可能變長了很多,這是因為BytesWri
Python對MySQL中讀取的資料進行json化
對MySQL中讀取的資料進行json化 資料格式: ((cluster1,db1,tb1), (cluster1,db1,tb2), (cluster1,db1,tb3), (cluster1,db2,tb3), (cluster2,db3,tb5), (cluster3,db4
Drupal 中讀取Excel資料再轉換格式到另一個Excel
開放原碼了,再有同學碰到類似問題,不會像我這樣到處去找資料和翻網站,碼中有什麼不好或者有什麼缺點的請看到的同學多多指教,好更好的更新程式碼。 放個costsheet.info先: name = CostSheet Convert Puma description = 讀
Apache Calcite:Hadoop中新型大資料查詢引擎
http://www.open-open.com/lib/view/open1442458630727.htmlApache Calcite是面向Hadoop新的查詢引擎,它提供了標準的SQL語言、多種查詢優化和連線各種資料來源的能力,除此之外,Calcite還提供了OLAP
使用VBScript從Access中讀取表格資料
第一步:連線Access資料庫 <% dim conn,rs set conn = server.createObject("adodb.connection")'宣告一個數據庫例項 '連線資料庫 conn.connectionString = "Provider=M
史無前例之---NodeJs 中讀取OracleDB 資料,將data 生成 Excel檔案
/** * Created by json on 2017/6/5. * 推介使用:excel-export * 根據data ,JSON.parse(data)---<data=JSON.stringify(result)> * 設定 Exce
根據檔案中讀取的資料使用turtle繪製圖形路徑
前言 這篇部落格主要是對從檔案中讀取的資料使用turtle繪製圖形路徑的操作 嗯,獨立完成,秀操作,明天也要加油鴨!!! 資料 資料是.txt檔案,共9行,每一行的第一列表示烏龜前進的畫素數,第二列表示轉動的方向(0表示向左),第三列表示
從資料庫中讀取出資料,然後用XML輸出
{ 37 // node "Location" 38 w.WriteStartElement("Location"); 39 w.WriteAttributeString("ID", locati
Hadoop中新型大資料查詢引擎:Apache Calcite
來自: http://www.infoq.com/cn/articles/new-big-data-hadoop-query-engine-apache-calcite http://www.open-open.com/lib/view/open1442458630727.html &n
Cocos2d-x 3.x中讀取csv資料檔案
遊戲開發中,資料檔案通常是儲存在xml,json,csv等格式的檔案中,這裡實現了CSV檔案的解析。 1.為什麼是CSV? 資料檔案為什麼儲存在CSV檔案中呢? a,同樣的資料放到CSV中要比放在xml和json中要小。 b,CSV的解析也比較簡單。
C# 中讀取資料庫資料的問題
程式首先是要判斷一天資訊是否存在於資料庫中,然後若存在則將資料展示在頁面的ListView中。 用來兩種方法: 1.用Adapter private static string strConnect = "Provider = Microsoft.Jet.OLEDB.4
怎麼在delphi中讀取Excel資料(各種詳細操作)
( 一 ) 使用動態建立的方法首先建立 Excel 物件,使用ComObj :VarExcelApp : Variant ;ExcelApp := CreateOleObject ( '' Excel.Application'' ) ;1 ) 顯示當前視窗:Exce
在 Map[Reduce] 的 setup 中讀取 HDFS 資料夾資訊
有時候,我們想在 Map 或者 Reduce 執行前讀取一些資料資訊(量相對比較小),又不想通過另一個 Map 來讀取,就可以在 該Map 的 setup 中來完成該操作。 相關定義1.在HDFS上某一資料夾下存放使用者資訊列表: /user/data/
TensorFlow中讀取影象資料的三種方式
本文面對三種常常遇到的情況,總結三種讀取資料的方式,分別用於處理單張圖片、大量圖片,和TFRecorder讀取方式。並且還補充了功能相近的tf函式。 1、處理單張圖片 我們訓練完模型之後,常常要用圖片測試,有的時候,我們並不需要對很多影象做測試,可能就是幾張甚至一張。這種情況下沒有必要用佇列機制。
C++opencv中讀取資料夾中的多幅圖片並按順序重新命名後儲存到另一資料夾中
#include <iostream> #include <fstream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include &
c++中txt檔案的讀取以及在MFC中讀取txt座標資料並完成圖形繪製
主要介紹如何讀取txt檔案中的座標資料,並在MFC視窗中繪製出來,工程建立方法和繪圖方法與上一篇博文基本一致,這裡就不再詳贅述,可參考上一篇博文vs2010、MFC視窗中繪製點、線、面。 C++中讀取檔案的方法有兩種,一種是來自於C語言的“檔案指標”方法,另一種是C++中的“檔案流”思想。
python 從檔案中讀取資料,同時去除掉空格和換行
從檔案中讀取資料,同時去除掉空格和換行,程式碼如下 import numpy as np def sort(path): w = open(path,'r') l = w.readlines() col=[] for k in l: k = k.strip('\n')
Hadoop中split數量和reader讀取原則
畫一個簡單的hadoop執行圖 這裡我以單詞計數為例,在WCapp(在上篇博文《split數量計演算法則》有原始碼)中設定最小切片數值和最大切片數值,把最大切片數值設定成13,即13個位元組 要計數的資料 這裡有個問題我們把切片值的設的很小,第
python讀取sqlserver資料,並儲存到csv中
# -*- coding: utf-8 -*- """ @use:查詢17.11-18.1,18.6-18.8的PM2.5資料,匯出到csv """ import pymssql import xlwt import datetime from xml.dom.minidom import
在佇列中讀取資料
注意儲存的形式:list、tuple image = tf.cast(image,tf.string) input_queue = tf.train.slice_input_producer([image,label]) label = input_queue[1] image_con