【问题标题】:Error in inserting data to HBase from R从 R 向 HBase 插入数据时出错
【发布时间】:2013-08-22 07:20:13
【问题描述】:

我有一个示例代码,它使用 RHBase(RHadoop 套件)从 R 连接到 HBase。 它适用于一种环境,但不适用于另一种环境。


代码:

# Location and port of the thrift server
hostLoc = '172.25.1.16'
port = 9090

require(rhbase)

#create new table with columns x,y and z
hb.new.table("mytable", "x","y","z",opts=list(y=list(compression='GZ')))

#insert some values into the table
hb.insert("mytable",list( list(10,c("x","y","z"),list("apple","berry","cherry"))))
hb.insert("mytable",list( list(20,c("x","y","z"),list(10001,14,575))))
hb.insert("mytable",list( list(30,c("x","y","z"),list("a string",1000.23,FALSE))))

这是相当简单的代码,我写这个是为了复制这个错误。

环境1:

Ubuntu 12.04 LTS 回复:3.0 节俭 0.9.0 Java(如果需要):OpenJDK 1.6

==> 此代码在此环境下运行良好。这是我的本地机器。

环境 2 Ubuntu 12.04 LTS R:2.15.2 节俭 0.9.0 Java(如果需要):Oracle Java 1.7

==> 这是一台远程机器。它抛出以下错误:

Error in hb.insert("mytable", list(list(10, c("x", "y", "z"), list("apple",  :
  RAW() can only be applied to a 'raw', not a 'character'

在这两种情况下,我都连接到远程位置的 HBase (0.94.7)。

关于是什么导致了这个问题的任何想法?我对 Hbase 和 RHadoop 套件还很陌生,请原谅任何幼稚的问题!另外,如果需要任何其他信息,请告诉我。

编辑:我有一个独立的 HBase 实例,而不是 cloudera 发行版。我根据 RHbase 的要求从源代码构建了 Thrift

【问题讨论】:

    标签: r hbase rhadoop


    【解决方案1】:

    Revolution Analytics 最近发布了第三种序列化,“char”。它解决了这个问题。

    hb.init(hostloc,port,'char')
    

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      相关资源
      最近更新 更多