让config.json成为一个小的json文件:

{

"toto": 1

}

我做了一个简单的代码,用sc.textFile读取json文件(因为文件可以在S3,本地或HDFS上,所以textFile很方便)

import org.apache.spark.{SparkContext, SparkConf}

object testAwsSdk {

def main( args:Array[String] ):Unit = {

val sparkConf = new SparkConf().setAppName("test-aws-sdk").setMaster("local[*]")

val sc = new SparkContext(sparkConf)

val json = sc.textFile("config.json")

println(json.collect().mkString("\n"))

}

}

SBT文件只提取spark-core库

libraryDependencies ++= Seq(

"org.apache.spark" %% "spark-core" % "1.5.1" % "compile"

)

程序按预期工作,在标准输出上写入config.json的内容。

现在我想链接aws-java-sdk,亚马逊的sdk来访问S3。

libraryDependencies ++= Seq(

"com.amazonaws" % "aws-java-sdk" % "1.10.30" % "compile",

"org.apache.spark" %% "spark-core" % "1.5.1" % "compile"

)

执行相同的代码,spark抛出以下异常。

Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: Could not find creator property with name 'id' (in class org.apache.spark.rdd.RDDOperationScope)

at [Source: {"id":"0","name":"textFile"}; line: 1, column: 1]

at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)

at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:843)

at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.addBeanProps(BeanDeserializerFactory.java:533)

at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:220)

at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)

at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:409)

at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:358)

at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:265)

at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:245)

at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:143)

at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:439)

at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3666)

at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3558)

at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2578)

at org.apache.spark.rdd.RDDOperationScope$.fromJson(RDDOperationScope.scala:82)

at org.apache.spark.rdd.RDDOperationScope$$anonfun$5.apply(RDDOperationScope.scala:133)

at org.apache.spark.rdd.RDDOperationScope$$anonfun$5.apply(RDDOperationScope.scala:133)

at scala.Option.map(Option.scala:145)

at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:133)

at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108)

at org.apache.spark.SparkContext.withScope(SparkContext.scala:709)

at org.apache.spark.SparkContext.hadoopFile(SparkContext.scala:1012)

at org.apache.spark.SparkContext$$anonfun$textFile$1.apply(SparkContext.scala:827)

at org.apache.spark.SparkContext$$anonfun$textFile$1.apply(SparkContext.scala:825)

at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147)

at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108)

at org.apache.spark.SparkContext.withScope(SparkContext.scala:709)

at org.apache.spark.SparkContext.textFile(SparkContext.scala:825)

at testAwsSdk$.main(testAwsSdk.scala:11)

at testAwsSdk.main(testAwsSdk.scala)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

读取堆栈时,似乎当链接aws-java-sdk时, sc.textFile检测到该文件是json文件并尝试使用jackson解析它,假设某种格式,当然无法找到。 我需要链接aws-java-sdk,所以我的问题是:

1-为什么添加aws-java-sdk会修改spark-core的行为?

2-是否有解决方法(文件可以在HDFS,S3或本地)?

java spark 读取json_apache-spark - 与aws-java-sdk链接时,在读取json文件时发生Spark崩溃 - 堆栈内存溢出...相关推荐

  1. java replace第二个_java - 错误的第二个参数类型:从片段内调用.replace() - 堆栈内存溢出...

    我知道这个问题经常被问到,但是没有一个被接受的解决方案对我有用. 尝试从其他片段之一启动"首选项菜单"片段时,出现经典的"错误的第二个参数类型"错误. 不幸的是 ...

  2. python3.5读取json文件时,顺序被打乱,解决方案

    由于python3.5的dict是无序的,所以读取json文件时如果不进行排序,会造成混乱 train_json = json.load(open('./data)) # 读取json文件 train ...

  3. aws java mysql_java - AWS EC2 / MySql - spring boot无法从datasource确定jdbc url - 堆栈内存溢出...

    我有一个简单的Spring Boot应用程序,我试图在基于Amazon AMI的Amazon EC2实例上部署. 它使用MySql数据库(版本8.0.15). 我在AWS上创建了数据库,当我从本地系统 ...

  4. java jini dll_java - Jini / JavaSpaces发现错误 - 堆栈内存溢出

    我在Eclipse中编写了这些类,并启动了Launch-All脚本和Run示例. 有用. 之后,我将这些类导出到可执行的jar(JavaSpaceClient.jar)中,并使用以下命令尝试了该jar ...

  5. java ftp 关闭连接_java - 使用Java Apache FTPClient进行FTP TLS获取“握手时远程主机关闭连接”[重复] - 堆栈内存溢出...

    我在Windows 10 64x上为FTP TLS(org.apache.commons.net.ftp)运行了一个Java(1.8)程序: FTPSClient ftpClient = new FT ...

  6. java ftp上传超时_java - Java FTP连接超时 - 堆栈内存溢出

    我正在做一个项目,修改后,稍后会将一些文件上传到FTP服务器...除了弄清楚文件的上传之外,我什么都没有. 我可以成功连接到FTP服务器,但是一旦文件上传,该程序将挂起几分钟,然后显示超时. java ...

  7. java 更新jlabel_java - 用Java更新绑定的JLabel文本 - 堆栈内存溢出

    当我运行您发布的代码时,我收到了NullPointerException . 这是堆栈跟踪的一部分. (请注意,我的环境是[64位] Windows 10上的JDK 13.0.1.) Exceptio ...

  8. java内存溢出让tomcat停止_java - 使用JVM Open J9一段时间后,应用程序(tomcat)停止响应 - 堆栈内存溢出...

    我正在使用Open J9,一段时间后我的应用程序停止响应..在生产中发生了2个小时后,在本地设法使用JMeter进行模拟. 应用程序(tomcat)只是停止响应,我需要重新启动才能将其取回. 问题是日 ...

  9. java程序包r不存在_java - 从命令行使用Gradle构建时,“程序包R不存在”错误 - 堆栈内存溢出...

    我正在尝试从命令行使用Gradle构建一个Android项目,但是当我想要更改目录结构时发现了一个问题. 目前是这样的: . └── main ├── AndroidManifest.xml ├── ...

最新文章

  1. [NC15748]旅游 树形dp基础
  2. OpenCV Shi-Tomasi角点检测
  3. java上传文件图片
  4. python处理rgb_如何在Python中读取给定像素的RGB值?
  5. 使用PaddleFluid和TensorFlow实现图像分类网络SE_ResNeXt | 文末超大福利
  6. webservice / cxf 开发经验总结
  7. android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题...
  8. ValueError: No engine for filetype: 'csv'解决与书本7-2代码改写
  9. 《Python Cookbook 3rd》笔记(1.6):字典中的键映射多个值
  10. 深入浅出强化学习_皋兰县举办科级干部学习贯彻党的十九届五中全会精神培训班...
  11. 【转】Serverless架构
  12. Cookie、Session、Token、JWT分别是什么(二)
  13. python写抽奖转盘_[宜配屋]听图阁
  14. python-50: 验证码
  15. 关联查询objectid_SAP 删除的BOM如何查询呢?
  16. 第三章CDMA的原理与应用(2)
  17. matlab显示图像频谱
  18. 35岁没成高管被优化了.... 网友炸了!!!
  19. 【修身养性】那些看不见的教养
  20. python自动注册邮箱_python自动化办公——邮箱

热门文章

  1. Matlab sumsqr函数
  2. 根据浏览器navigator区分PC端还是移动端,区分操作系统,区分浏览器型号
  3. 少儿编程150讲轻松学Scratch(二)-制作过马路小游戏
  4. docker rabbitmq php扩展,Docker开启RabbitMQ延时消息队列
  5. mongodb java id 查询数据_java 用 _id 查找 MongoDB 下的数据
  6. mysql concat 引号_在MySQL concat里面使用多个单引号,三引号的问题
  7. Extjs弹窗-简单文本编辑框-Ext.Msg.show
  8. java undo_用JAVA实现Undo、Redo,Copy、Paste、Cut_java
  9. CSS3中的透明属性opacity的用法实例
  10. CSS的计数器:counter-increment与counter-reset