从Postgres JSONB到Spark JSONRDD

时间:2015-12-25 06:16:13

标签: json postgresql apache-spark apache-spark-sql

我在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()不是懒惰的?

0 个答案:

没有答案