Apache spark 从字符串配置单元解析json

Apache spark 从字符串配置单元解析json,apache-spark,hadoop,hive,hdfs,Apache Spark,Hadoop,Hive,Hdfs,我有一个配置单元表,其中一列包含JSON数据作为字符串 如何将这个JSON字符串“转换”为另一个表(包含所有JSON字段等),最好的方法是什么?我想将JSON字符串中的行插入到我的表中 或者有另一种方法将JSON解析到表中 我正在使用Java Spark 谢谢使用配置单元上下文在配置单元中保存数据帧 火花1.6 val conf = new SparkConf().setAppName("jsontest").setMaster("local[*]") val sc = new Spar

我有一个配置单元表,其中一列包含JSON数据作为字符串

如何将这个JSON字符串“转换”为另一个表(包含所有JSON字段等),最好的方法是什么?我想将JSON字符串中的行插入到我的表中

或者有另一种方法将JSON解析到表中

我正在使用Java Spark


谢谢

使用配置单元上下文在配置单元中保存数据帧
火花1.6

  val conf = new SparkConf().setAppName("jsontest").setMaster("local[*]")
  val sc = new SparkContext(conf)

  val json = """[
  {
    "tag_name": "A",
    "item_name": "B",
    "timestamp": "2018-07-09T16:59:17.8232306Z",
    "value": 10
  }
  ]"""

  val jsonRdd = sc.parallelize(Seq(json))
  System.setProperty("hive.metastore.uris: ", "thrift://ip:9083");

  val hiveContext = new HiveContext(sc)

  val df = hiveContext.read.json(jsonRdd)
  df.show(false)


+---------+--------+----------------------------+-----+
|item_name|tag_name|timestamp                   |value|
+---------+--------+----------------------------+-----+
|B        |A       |2018-07-09T16:59:17.8232306Z|10   |
+---------+--------+----------------------------+-----+

//save into table
df.write.mode(SaveMode.Append).insertInto(tableName)
火花>2.0

val spark = SparkSession .builder() .appName( "SparkSessionZipsExample" ) .config( "spark.sql.warehouse.dir" , warehouseLocation) .enableHiveSupport() .getOrCreate()