Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将json提取到case类SCALA FLINK时出错

将json提取到case类SCALA FLINK时出错
EN

Stack Overflow用户
提问于 2017-05-01 22:24:27
回答 1查看 1.1K关注 0票数 1

问题是在进行案例类提取时,映射函数中存在问题。case类不可序列化。我已经隐式地定义了DefaultFormats格式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package org.apache.flink.quickstart
import java.util.Properties

import com.fasterxml.jackson.databind.{JsonNode, ObjectMapper}
import com.fasterxml.jackson.module.scala.DefaultScalaModule
import org.apache.flink.api.scala._
import org.apache.flink.runtime.state.filesystem.FsStateBackend
import org.apache.flink.streaming.api.scala.{DataStream, StreamExecutionEnvironment}
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer09
import org.apache.flink.streaming.util.serialization.SimpleStringSchema
import org.json4s.DefaultFormats
import org.json4s._
import org.json4s.native.JsonMethods
import scala.util.Try


case class CC(key:String)

object WordCount{
  def main(args: Array[String]) {

    implicit val formats = org.json4s.DefaultFormats

    // kafka properties
    val properties = new Properties()
    properties.setProperty("bootstrap.servers", "***.**.*.***:9093")
    properties.setProperty("zookeeper.connect", "***.**.*.***:2181")
    properties.setProperty("group.id", "afs")
    properties.setProperty("auto.offset.reset", "earliest")
    val env = StreamExecutionEnvironment.getExecutionEnvironment

   val st = env
       .addSource(new FlinkKafkaConsumer09("new", new SimpleStringSchema() , properties))
       .flatMap(raw => JsonMethods.parse(raw).toOption)
//       .map(_.extract[CC])


    val l = st.map(_.extract[CC])

    st.print()
      env.execute()
  }
}

错误:

INFO main -没有检测到org.json4s.JsonAST$JValue类的字段。不能用作PojoType。将作为线程"main“org.apache.flink.api.common.InvalidProgramException:任务中的GenericType异常处理,在org.apache.flink.api.scala.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:172) at org.apache.flink.api.scala.ClosureCleaner$.clean(ClosureCleaner.scala:164) at org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.scalaClean(StreamExecutionEnvironment.scala:666) at org.apache.flink.streaming上不可序列化。.api.scala.DataStream.clean(DataStream.scala:994) at org.apache.flink.streaming.api.scala.DataStream.map(DataStream.scala:519) at org.apache.flink.quickstart.WordCount$.main(WordCount.scala:38) at org.apache.flink.quickstart.WordCount.main(WordCount.scala) at : java.io.NotSerializableException: org.json4s.DefaultFormats$$anon$4 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)在java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)在java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) at org.apache.flink.util.InstantiationUtil.serializeObject(InstantiationUtil.java:317) at org.apache.flink.api.scala.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:170) 6 进程已完成,退出代码为%1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-11 22:36:00

解决办法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
implicit val formats = org.json4s.DefaultFormats

外部的主要功能,如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
object WordCount{

    implicit val formats = org.json4s.DefaultFormats
    def main(args: Array[String])

或者懒散地初始化格式,比如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
implicit lazy val formats = org.json4s.DefaultFormats

在主要功能内部,如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def main(args: Array[String]) {
    implicit lazy val formats = org.json4s.DefaultFormats
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43731397

复制
相关文章
Python提取PPT中的图片
今天要带大家实现的是PPT图片的提取。在我们学习工作中,PPT的使用还是非常频繁的,但是自己做PPT是很麻烦的,所以就需要用到别人的模板或者素材,这个时候提取PPT图片就可以减少我们很多工作。
ZackSock
2021/10/08
2K0
如何提取PPT中的所有图片
1、 首先,我们打开一个含有图片的PPT,点菜单“文件”--“另存为”;在“另存为”对话框中,选择保存类型为“网页”,点保存; 2、打开我们保存文件的目录,会发现一个带有“******.files”的文件夹; 3、双击该文件夹,里面的文件类型很多,再按文件类型排一下序,看一下,是不是所有的图片都在里面了,一般图片为jpg格式的;
P轴
2022/11/18
7K0
PHP 提取富文本中的全部图片(提取文章中的全部图片)
未经允许不得转载:肥猫博客 » PHP 提取富文本中的全部图片(提取文章中的全部图片)
超级小可爱
2023/02/20
2.2K0
Python工具源码,Python批量提取PPT文件中的图片
在办公场景当中,同样也有这样一个需求,那就是快速批量把PPT文件中的图片提取出来,毕竟一个个点击另存为太过于繁琐,以及耗费时间,前面本渣渣分享过如何应用Python批量提取PDF文件中的图片,而这一篇本渣渣就为大家分享如何应用Python批量提取PPT文件中的图片。
二爷
2021/08/23
1.5K0
Python工具源码,Python批量提取PPT文件中的图片
1行代码,提取Word中的图片
程序员晚枫
2023/09/24
2600
1行代码,提取Word中的图片
Python脚本工具,PyMuPDF批量提取PDF文件中的图片
如何批量快速提取出PDF中的图片文件,你是否遇到这样的一个问题,尤其是PPT文件转换为PDF文件,需要快速提取其中的图片文件,如果你恰好会那么一点py,同时复制粘贴没问题的话,那么相信你也能够很轻松的解决这个问题。
二爷
2021/08/23
3.1K0
Python脚本工具,PyMuPDF批量提取PDF文件中的图片
使用Python批量提取并保存docx文档中的图片
如果实在看不懂上面的代码,但是又有同样的功能需要,可以把test.docx文件复制一份并把扩展名改为zip,文件名为“test_副本.zip”,然后解压缩,可以直接在word\media文件夹中得到文档中的图片,如下图所示。当然也可以把这个过程使用Python实现自动化,使用标准库zipfile和os就可以实现。
Python小屋屋主
2018/12/18
3.1K0
从相册中取图片
需要加载一个协议 UIImagePickerControllerDelegate //从手机相册中获得图片并显示在imageView中 - (IBAction)albumClocked:(id)sender {     //创建一个图片选择器     UIImagePickerController *imagePicker = [[UIImagePickerController alloc]init];     //设置选择器的资源类型     imagePicker.sourceType =UII
用户1219438
2018/02/01
1.2K0
小知识:如何从图片中提取文字
这个需求很简单,在工作中也很常见。 但就是这个简单的需求,通常也是要借助第三方工具/软件,网上去搜也有在线免费版的,但很多来源不明,安全性和稳定性都非常没有保障。
Alfred Zhao
2022/05/06
6.3K0
小知识:如何从图片中提取文字
python:如何从 URL 中快速提取域名?
有时候,我们要从一段很长的 URL 里面提取出域名。例如从https://www.kingname.info/2020/10/02/copy-from-ssh/,我需要获取的是kingname.info。
王图思睿
2021/06/16
9.1K0
Python提取图片文字内容
爬虫的时候,有时候会遇到一些验证码,常见的有滑块验证码和文字验证码,本文所讲内容将为解决文字验证码做一些准备!
远方的星
2021/06/20
12.8K0
Python提取图片文字内容
教你快速提取iOS App中的图片素材
2016-08-2819:40:36 发表评论 420℃热度 2.1 下载app安装包 2.2 利用工具获取图片资源 目录 平时玩手机,看到iOS app中许多不错的图片素材的时候,有木有很心动,
timhbw
2018/05/03
4.4K1
教你快速提取iOS App中的图片素材
三种方法,Python轻松提取PDF中全部图片
今天就跟大家系统分享几种Python提取 PDF 图片的方法。其实没有非常完美的方法,每种方法提取效率都不是百分之百,因此可以考虑用多种方法进行互补,主要将涉及:
刘早起
2021/02/05
8.6K0
Python 提取图片中的GPS信息
JPG图片中默认存在敏感数据,例如位置,相机类型等,可以使用Python脚本提取出来,加以利用,自己手动拍摄一张照片,然后就能解析出这些敏感数据了,对于渗透测试信息搜索有一定帮助,但有些相机默认会抹除这些参数。
微软技术分享
2022/12/28
1.5K0
Python提取docx文档中嵌入式图片和浮动图片的又一种方法
昨天推送了使用docx2python扩展库提取文档中图片的文章之后,经网友perfect提醒,实际上使用python-docx这个扩展库也可以提取浮动图片,并给出了参考代码。经过分析和测试,确实可以,然后根据分析我把perfect朋友给出的代码又简化改进了一下,思路如下:
Python小屋屋主
2019/11/28
2.8K0
python识别批量网站中的图片
实现方式: 下载网页源码,在源码中识别包含图片url的标签,如<img>,<div>,<li>。由于对html了解较少,哪些标签可能含有图片是从查看多个网站的源码中总结出来的。
py3study
2020/01/20
1.4K0
hexo博客中如何插入图片
Hexo的博文是支持Markdown格式的,发表一篇文章只需要简简单单的几个命令。
不作声
2020/10/30
4.4K0
hexo博客中如何插入图片
JAVA中如何图片异步上传
来源:程序员头条:http://www.90159.com/2015/12/15/java-upload-picture/ 在java中要实现异步上传要提前做好准备,对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。 这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在st
编程范 源代码公司
2018/04/16
2.4K0
Linux下从PDF文件中提取图片
PDF 其实本质上是一个文件包,比如某些 PDF 文件中有插图,这些插图都包含在这个 PDF 文件包中。Linux 下可以使用 pdfimages 命令来从 PDF 文件中提取图片文件。如果你的 Linux 发行版上没有该命令,需要安装 poppler-utils 软件。pdfimages 命令的语法格式如下:
hotarugali
2022/02/28
2.6K0
html中如何设置默认图片?
大家可能都知道img标签是怎么设置默认图片的,但是你知道background-img是如何设置默认图片的嘛?
Javanx
2019/09/04
5K0
html中如何设置默认图片?

相似问题

如何在JAVA中从图片URL中提取图片属性?

12

如何知道Android Notification大图片样式中的图片大小?

30

Python 3:如何提取url图片?

332

Selenium:如何从网站提取所有图片(包括javascript和css中的图片)

129

如何在android中编辑大图片?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文