我在Postgres数据库中有一个名为 data 的JSONB列。我希望用Spark查询和处理这个专栏。到目前为止我已经想到了什么:
1.通过JDBC设置DataFrame
val df = sqlContext.load("jdbc", Map("url"->"jdbc:postgresql://localhost:5432/mydb?user=foo&password=bar","dbtable"->"mydb", "driver"->"org.postgresql.Driver"))
2.选择数据列并将其转换为RDD [行],然后转换为RDD [String]
val myRdd = df.select("data").rdd().map(row=>row.toString())
3.使用Spark SQL将RDD [String]转换为JsonRDD
val jsonRdd = sqlContext.read.json(myRdd)
有更简单的方法吗?将json转换为字符串并返回json似乎是一个很大的弯路。另外,第3步非常慢 - 可能是read.json()不是懒惰的?