spark中读取json_在缺少json数据源的spark中读取json

在 Spark 1.6.1 版本中,尝试读取 JSON 文件时遇到了 `ClassNotFoundException`,问题在于缺少 JSON 数据源。通过创建 RDD 并转换为 JsonRDD 成功读取数据。使用 Scala 代码示例展示了如何从 RDD 创建临时表并进行 SQL 查询。
摘要由CSDN通过智能技术生成

我试图使用下面的代码将示例json文件读入SqlContext,但它失败并出现数据源错误 .

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val path = "C:\\samplepath\\sample.json"

val jsondata = sqlContext.read.json(path)

java.lang.ClassNotFoundException:无法找到数据源:json . 请在orsp.apache.spache.spark.sql.execution.datasources的orsp.apache.spark.sql.execution.datasources.ResolvedDataSource $ .lookupDataSource(ResolvedDataSource.scala:77)的http://spark-packages.org上找到软件包 . ResolvedDataSource $ .apply(ResolvedDataSource.scala:102)位于org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)的org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109)at at org.apache.spark.sql.DataFrameReader.json(DataFrameReader.scala:244)org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:181)at org.apache.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:206)org.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:121)at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)引起:java .lang.ClassNotFoundException:java.lang.ClassLoader上java.lang.ClassLoader.loadClass(ClassLoader.java:424)中的scala.tools.nsc.interpreter.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:83)中的json.DefaultSource .loadClass(ClassLoader.java:357)atg.apache.spark.sql.execution.datasources.ResolvedDataSource $$ anonfun $ 4 $$ anonfun $ apply $ 1.apply(ResolvedDataSource.scala:62)at org.apache.spark.sql .execution.datasources.ResolvedDataSource $$ anonfun $ 4 $$ anonfun $ apply $ 1.apply(ResolvedDataSource.scala:62)在scala.util.Try $ .apply(Try.scala:161)org.apache.spark.sql . execution.datasources.ResolvedDataSource $$ anonfun $ 4.apply(ResolvedDataSource.scala:62)位于scala.util的org.apache.spark.sql.execution.datasources.ResolvedDataSource $$ anonfun $ 4.apply(ResolvedDataSource.scala:62) . Try.orElse(Try.scala:82)at org.apache.spark.sql.execution.datasources.ResolvedDataSource $ .lookupDataSource(ResolvedDataSource.scala:62)... 50更多

我试图寻找可能缺少的火花包,但找不到任何有用的解决方法 .

我尝试使用Pyspark的类似代码,但它失败了类似的json数据源ClassNotFoundException .

在进一步尝试将现有RDD转换为JsonRDD后,我能够成功获得结果 . 有什么我想念的吗?我在Scala-2.10.5上使用Spark-1.6.1 . 任何帮助表示赞赏 . 谢谢

val stringRDD = sc.parallelize(Seq("""

{ "isActive": false,

"balance": "$1,431.73",

"picture": "http://placehold.it/32x32",

"age": 35,

"eyeColor": "blue"

}""",

"""{

"isActive": true,

"balance": "$2,515.60",

"picture": "http://placehold.it/32x32",

"age": 34,

"eyeColor": "blue"

}""",

"""{

"isActive": false,

"balance": "$3,765.29",

"picture": "http://placehold.it/32x32",

"age": 26,

"eyeColor": "blue"

}""")

)

sqlContext.jsonRDD(stringRDD).registerTempTable("testjson")

sqlContext.sql("SELECT age from testjson").collect

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值