我每天都有很多数据(JSON字符串)(大约150-200B)。
我想将JSON插入到Hadoop中,最好的方法是什么(我需要快速插入和快速查询JSON字段)?
我是否需要使用hive并为我的JSON创建Avro方案?或者,我是否需要将JSON作为字符串插入到特定列中?
发布于 2018-06-19 20:49:08
如果你想使数据在Hive中可用,以便在其上执行大部分聚合,我建议使用spark的以下方法之一。
如果您有多行json文件
var df = spark.read.json(sc.wholeTextFiles("hdfs://ypur/hdfs/path/*.json").values)
df.write.format("parquet").mode("overwrite").saveAsTable("yourhivedb.tablename")如果您有单行的json文件
val df = spark.read.json("hdfs://ypur/hdfs/path/*.json")
df.write.format("parquet").mode("overwrite").saveAsTable("yourhivedb.tablename")Spark会自动为你推断出表格模式。如果您使用的是cloudera发行版,您将能够使用impala读取数据(取决于您的cloudera版本,它可能不支持复杂的结构)
https://stackoverflow.com/questions/50923658
复制相似问题