Bu json dosyasını bir kovan tablosuna okumaya çalışıyorum, en üst seviye tuşları, yani 1,2 .., burada tutarlı değil.hive/sql ve spark ile json anahtar değerlerini oku
{
"1":"{\"time\":1421169633384,\"reading1\":130.875969,\"reading2\":227.138275}",
"2":"{\"time\":1421169646476,\"reading1\":131.240628,\"reading2\":226.810211}",
"position": 0
}
Sütunlardaki konumu görmezden geldiğim için kovanımdaki saat ve okumalara (1.2) ihtiyacım var. Aynı zamanda bir kovan sorgu taraması yapabilir ve harita azaltma kodunu kırabilirim. Yardımlarınız için teşekkür ederiz.
Update, burada Aşağıdaki hata atar
val hqlContext = new HiveContext(sc)
val rdd = sc.textFile(data_loc)
val json_rdd = hqlContext.jsonRDD(rdd)
json_rdd.registerTempTable("table123")
println(json_rdd.printSchema())
hqlContext.sql("SELECT json_val from table123 lateral view explode_map(json_map(*, 'int,string')) x as json_key, json_val ").foreach(println)
çalışıyorum budur: Eğer "2" (anahtar adları) "1" yeniden adlandırmak ve eğer
Exception in thread "main" org.apache.spark.sql.hive.HiveQl$ParseException: Failed to parse: SELECT json_val from temp_hum_table lateral view explode_map(json_map(*, 'int,string')) x as json_key, json_val
at org.apache.spark.sql.hive.HiveQl$.createPlan(HiveQl.scala:239)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:50)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:49)
at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:136)
at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:135)
at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242)
at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242)
at scala.util.parsing.combinator.Parsers$$anon$3.apply(Parsers.scala:222)
Çıktının nasıl görünmesini istediğinize dair bir örnek son derece yararlı olacaktır. – gobrewers14
çıktı tablonun örneği: "" time "," reading1 "," reading2 "\ n 1421169633384, 130.875969, 227.138275 \ n 1421169646476, 131.240628, 226.810211' – venuktan