提问人:Anis Smail 提问时间:10/23/2017 更新时间:3/24/2019 访问量:1815
使用 spark sql 的 intelliJ 上不相关的歧义方法调用错误
Irrelevant ambigious method call error on intelliJ with spark sql
问:
此 spark sql 代码编译并运行,但 intelliJ (idea-IU-172.4343.14) 显示“Ambigious 方法调用”错误。
public static void main(String[] args) {
SparkSession session = SparkSession //
.builder() //
.appName("idea-ambigious-method-call-bug") //
.master("local[*]") //
.getOrCreate();
Dataset<String> cities = session//
.sqlContext()//
.createDataset(Arrays.asList("Paris", "Porto", "London"), Encoders.STRING());
cities.filter(name -> name.startsWith("P")).show();
}
这在以前版本的 intelliJ 中不会发生。
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
答:
-1赞
Yoga Gowda
9/26/2018
#1
我在 IntelliJ IU-182 上遇到了同样的问题(映射的多个实现),但如果从终端运行相同的程序,则没有任何编译器问题。
SparkSession session = SparkSession.builder().appName("ALB log Analyzer").master("local[2]").getOrCreate();
Dataset<ALBLog> accessLogs = session.read().textFile(logFile).map(ALBLog::parseAlbLog,
Encoders.bean(ALBLog.class));
4赞
perascotta
11/19/2018
#2
我认为这可以链接到 scala 插件。该插件使 Spark 的源代码具有可读性,而 IntelliJ 无法选择正确的方法。如果您从 IntelliJ 卸载插件,一切应该都可以正常工作。但是,您将失去拥有可读 Spark 源代码的可能性。
评论
1赞
Anis Smail
11/19/2018
你是对的!除了我不能使用这个解决方案,因为在同一个项目中,我也有 scala 代码。
2赞
Abhi
3/24/2019
#3
删除 Spark 核心依赖项时,它运行良好。
尝试在 Spark sql 依赖项下方使用相同的代码。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.0</version>
</dependency>
上一个:React 无法专注于 div
下一个:气流:如何在不同时间安排匕首?
评论