【发布时间】:2017-01-29 21:28:16
【问题描述】:
我正在尝试将内存中的 JSON string 动态读取到 Spark DataFrame 中:
var someJSON : String = getJSONSomehow()
val someDF : DataFrame = magic.convert(someJSON)
我花了很多时间研究 Spark API,我能找到的最好方法是使用 sqlContext,如下所示:
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 写入临时文件,这既慢又笨拙;和
- 它迫使我随着时间的推移清理临时文件,这很麻烦并且让我感觉“不对”
所以我问:有没有直接更有效的方法将 JSON 字符串转换为 Spark DataFrame?
【问题讨论】:
标签: json scala apache-spark spark-dataframe