将hdfs数据写入到phoenix-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

将hdfs数据写入到phoenix

hbase小能手 2018-11-07 16:26:09 1389

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

分布式计算 Java 数据库连接 Spark
分享到
取消 提交回答
全部回答(1)
  • 我是管理员
    2019-07-17 23:12:44

    可以将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

    0 0
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题