我正在使用shc core将spark数据集写入hbase,有关更多详细信息,请参见此处。
这是我当前的shc目录:
def catalog = s"""{
|"table":{"namespace":"default", "name":"table1"},
|"rowkey":"key",
|"columns":{
|"col0":{"cf":"rowkey", "col":"key", "type":"string"},
|"col1":{"cf":"cf1", "col":"col1", "type":"boolean"},
|"col2":{"cf":"cf2", "col":"col2", "type":"double"},
|"col3":{"cf":"cf3", "col":"col3", "type":"float"},
|"col4":{"cf":"cf4", "col":"col4", "type":"int"},
|"col5":{"cf":"cf5", "col":"col5", "type":"bigint"},
|"col6":{"cf":"cf6", "col":"col6", "type":"smallint"},
|"col7":{"cf":"cf7", "col":"col7", "type":"string"},
|"col8":{"cf":"cf8", "col":"col8", "type":"tinyint"}
|}
|}""".stripMargin
因为sof规则代码不能太长,我只能给你一部分:
这是我的hbase目录:
{
"columns": {
"RXSJ": {
"col": "RXSJ",
"cf": "info",
"type": "bigint"
},
"LATITUDE": {
"col": "LATITUDE",
"cf": "info",
"type": "float"
},
"ZJHM": {
"col": "ZJHM",
"cf": "rowkey",
"type": "string"
},
"AGE": {
"col": "AGE",
"cf": "info",
"type": "int"
}
},
"rowkey": "ZJHM",
"table": {
"namespace": "default",
"name": "mongo_hbase_spark_out"
}
}
其他字段正常输出,但不输出rowkey列。
如何将rowkey额外输出为列?
2条答案
按热度按时间lqfhib0f1#
经过测试,我解决了这个问题。整个想法是输出同一列两次
这是我新生成的shc目录:
我认为rowkey列是hortonworks spark shc的特殊列,它总是输出第一列。只考虑其他方式输出到其他cf。
如果你有更好的建议,请告诉我
谢谢!
i7uaboj42#
你不会得到
rowkey
以与其他列相同的方式显示。在hbase目录的描述中提到:请注意,rowkey还必须详细定义为列(col0),该列具有特定的cf(rowkey)。
因此,尽管您在
columns
目录的一部分。这个
rowkey
仅在屏幕截图显示的实际行键中可见。