开发者社区> 问答> 正文

将hdfs数据写入到phoenix

1、spark方式:官网写入数据有不行,报org.apache.phoenix.mapreduce.PhoenixOutputFormat这个类找不到,但是我这累的jar我确定我已经导入了。
2、CsvBulkLoadTool导入数据,可不可以自定义分割符
3、使用jdbc写入数据,但是大量数据不行

展开
收起
hbase小能手 2018-11-07 16:26:09 3779 0
1 条回答
写回答
取消 提交回答
  • 社区管理员

    可以将csv文件上传至hdfs,然后使用spark读取csv,创建rdd,再使用phoenix的spark驱动,批量保存数据到hbase中。
    举例
    第一种方式:saveRDDs
    import org.apache.spark.SparkContext
    import org.apache.phoenix.spark._

    val sc = new SparkContext("local", "phoenix-test")
    val dataSet = List((1L, "1", 1), (2L, "2", 2), (3L, "3", 3))

    sc
    .parallelize(dataSet)
    .saveToPhoenix(

    "OUTPUT_TEST_TABLE",
    Seq("ID","COL1","COL2"),
    zkUrl = Some("phoenix-server:2181")

    )

    第二种方式:save Dataframes
    import org.apache.spark.SparkContext
    import org.apache.spark.sql._
    import org.apache.phoenix.spark._

    // Load INPUT_TABLE
    val sc = new SparkContext("local", "phoenix-test")
    val sqlContext = new SQLContext(sc)
    val df = sqlContext.load("org.apache.phoenix.spark", Map("table" -> "INPUT_TABLE",
    "zkUrl" -> hbaseConnectionString))

    // Save to OUTPUT_TABLE
    df.save("org.apache.phoenix.spark", SaveMode.Overwrite, Map("table" -> "OUTPUT_TABLE",
    "zkUrl" -> hbaseConnectionString))

    参考phoenix官方:https://phoenix.apache.org/phoenix_spark.html

    2019-07-17 23:12:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
海量数据分布式存储——Apache HDFS之最新进展 立即下载
HDFS optimization for Hbase At XiaoMi 立即下载
HDFS optimization for HBase at XiaoMi 立即下载