我正在尝试将内存中的JSON string 读取到Spark DataFrame中:
var someJSON : String = getJSONSomehow()
val someDF : DataFrame = magic.convert(someJSON)
我花了很多时间查看Spark API,我能找到的最好的就是像这样使用_1544726:
var someJSON : String = getJSONSomehow()
val tmpFile : Output = Resource
.fromFile(s"/tmp/json/${UUID.randomUUID().toString()}")
tmpFile.write("hello")(Codec.UTF8)
val someDF : DataFrame = sqlContext.read().json(tmpFile)
但这感觉有点尴尬/不稳定,并施加以下限制:
-
它要求我将每行JSON格式化为一个对象(per documentation);和
-
它迫使我把JSON写入临时文件,这很慢而且很尴尬;和
-
它迫使我随着时间的推移清理临时文件,这很麻烦,对我来说感觉很棒"wrong"
所以我问: Is there a direct and more efficient way to convert a JSON string into a Spark DataFrame?
1 回答
从Spark SQL指南:
这将从中间RDD创建一个DataFrame(通过传递String创建) .