分享

Spark scala 问题求救

val hbasecontentrdd01 = contentrdd01.map(p => {
  (Bytes.toBytes(p._1),Array((Bytes.toBytes(columnFamily), Bytes.toBytes(qualifier), Bytes.toBytes(p._2))))
})
val tableName = args(3)
hbaseContext.bulkPut[(Array[Byte], Array[(Array[Byte], Array[Byte], Array[Byte])])](hbasecontentrdd01,
  tableName,
  (putRecord) => {
    val put = new Put(putRecord._1)
    putRecord._2.foreach((putValue) => put.addColumn(putValue._1, putValue._2, putValue._3))
    put
  }
)
if (args.length < 5) {
  System.err.println("Usage: SaveToHbaseByMinute_shenzhen 20150610 hivetable boxtype hbasetable [areacode] dns")
  System.exit(1)
} 2345截图20171123102633.png
2345截图20171123102627.png

已有(4)人评论

跳转到指定楼层
sstutu 发表于 2017-11-23 10:48:04
具体报的什么错误。类型是否匹配。尝试下面两个方法:
1.直接赋值,而不是去控制台去输入然后读取,比如name为“深圳”
2.尝试这个方法:TableName.valueOf(tableName)
回复

使用道具 举报

逆光之处是快乐 发表于 2017-11-23 11:04:14
我现在就是想通过控制台来去那个表名,就是它报错
回复

使用道具 举报

sstutu 发表于 2017-11-23 11:07:47
逆光之处是快乐 发表于 2017-11-23 11:04
我现在就是想通过控制台来去那个表名,就是它报错

通过下面方法,把他转换下
TableName.valueOf(tableName)
改成下面红字部分
val tableName = args(3)
hbaseContext.bulkPut[(Array[Byte], Array[(Array[Byte], Array[Byte], Array[Byte])])](hbasecontentrdd01,
  TableName.valueOf(tableName),
  (putRecord) => {
    val put = new Put(putRecord._1)
    putRecord._2.foreach((putValue) => put.addColumn(putValue._1, putValue._2, putValue._3))
    put
  }
)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条