等效Pypark';s json.loads函数用于spark shell

等效Pypark';s json.loads函数用于spark shell,json,scala,apache-spark,Json,Scala,Apache Spark,我正在spark shell中处理json文件。我的目标是将json(即选择特定字段)解析为RDD。在pyspark中,我可以简单地使用json.loads: import json docs = (sc.textFile("file.json") .map(lambda x: (json.loads(x)['url'], json.loads(x)['content'])) ) 到目前为止,我找到的一个解决方案是使用read.json。但是,它返回数据帧 val do

我正在spark shell中处理json文件。我的目标是将json(即选择特定字段)解析为RDD。在pyspark中,我可以简单地使用
json.loads

import json
docs = (sc.textFile("file.json") 
          .map(lambda x: (json.loads(x)['url'], json.loads(x)['content'])) ) 
到目前为止,我找到的一个解决方案是使用
read.json
。但是,它返回数据帧

val docs = sqlContext.
           read.json("file.json").
           select("url", "content").
           as[(String, String)].rdd

在spark shell(scala)中是否可以实现任何等效的pyspark的json.load?

您可以在spark shell中使用red.json方法also@RajatMishra是的,可以使用
read.json
,但它输出数据帧您始终可以将数据帧转换回rdd,然后将其映射到您需要的任何内容。dataframe有一个“rdd”成员,它导致rdd[Row]@AssafMendelson谢谢,这就是我所做的。scala中是否有任何函数可以将json直接解析为rdd,而不是dataframe?任何java json包都可以用于将json行转换为对象。您使用它的方式与使用json.loads的方式非常相似。最常见的是jackson,我相信它是数据帧读取的后端。问题在于,因为scala(java)是静态类型的,所以使用它比python更复杂。您想要rdd而不是dataframe的原因是什么?您可以在spark shell中使用red.json方法also@RajatMishra是的,可以使用
read.json
,但它输出数据帧您始终可以将数据帧转换回rdd,然后将其映射到您需要的任何内容。dataframe有一个“rdd”成员,它导致rdd[Row]@AssafMendelson谢谢,这就是我所做的。scala中是否有任何函数可以将json直接解析为rdd,而不是dataframe?任何java json包都可以用于将json行转换为对象。您使用它的方式与使用json.loads的方式非常相似。最常见的是jackson,我相信它是数据帧读取的后端。问题在于,因为scala(java)是静态类型的,所以使用它比python更复杂。你为什么想要rdd而不是dataframe?