小编frm*_*frm的帖子

如何在执行“org.apache.spark.sql.DataSet.collectAsList()”时修复“不支持的类文件主要版本 55”

我正在创建一个 Java RESTAPI Spring Boot 应用程序,它使用 spark 从服务器获取一些数据。当我尝试从数据集转换为列表时它失败了。

我试过 jdk8 和 jdk11 来编译和执行代码,但我得到了相同的 'java.lang.IllegalArgumentException: Unsupported class file major version 55',过去,我通过更新 Java 版本解决了这个问题,但它是不为此工作。

我正在使用:

  • JDK 11.0.2

  • 春季启动 2.1.4

  • 火花2.4.2

这是我正在执行的代码:

Dataset<Row> dataFrame = sparkSession.read().json("/home/data/*.json");
        dataFrame.createOrReplaceTempView("events");
        Dataset<Row> resultDataFrame = sparkSession.sql("SELECT * FROM events WHERE " + predicate); 
        Dataset<Event> eventDataSet = resultDataFrame.as(Encoders.bean(Event.class));
        return eventDataSet.collectAsList();
Run Code Online (Sandbox Code Playgroud)

查询有效,实际上在调试时您可以在 resultDataFrame 和 eventDataSet 中看到信息。

我希望输出是一个正确的事件列表,但我收到了异常:

[http-nio-8080-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Unsupported …
Run Code Online (Sandbox Code Playgroud)

java spring-boot apache-spark

5
推荐指数
2
解决办法
1万
查看次数

如何将“示例值”添加到 Swagger 中的参数

我正在使用 Swagger 用 Spring Boot 创建一个新的 Rest API 来记录它,但我无法更改 Web 上显示的示例值。我可以在模型中更改它,但不能在 POST 参数中更改。

这些是我的依赖项:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/>
        <!-- lookup parent from repository -->
    </parent>
...
        <swagger.version>2.9.2</swagger.version>
...
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
        </dependency>
...
Run Code Online (Sandbox Code Playgroud)

我拥有的代码是:

    @PostMapping("events")
    @ApiOperation(value = "Get events")
    public ResponseEntity<List<Event>> events(
            @ApiParam(value = "Event type", required = true, example = "sent") final @RequestBody String type) {
        return new ResponseEntity<List<Event>>(getEvents.get(type), HttpStatus.OK);
    }
Run Code Online (Sandbox Code Playgroud)

而不是在示例值“已发送”下看到,而是看到“字符串”。

此注释适用于 Event 模型,但不适用于这里。

我错过了什么?

swagger swagger-ui spring-boot springfox

5
推荐指数
1
解决办法
1万
查看次数