在我的Flink项目中,我找不到连接器的某些库(具体来说,我需要吃一次CSV,在批处理或流模式下读取几个块数据的TBs )。我想我有所有必需的包裹,但我仍然得到:
[ERROR] import org.apache.flink.connector.file.src.FileSource
[ERROR] ^
[ERROR] C:\Users\alias\project\...\MyFlinkJob.scala:46: error: not found: type FileSource我的POM.xml相当大,但我想我有相关的进口:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-parquet</artifactId>
<version>1.15.2</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-filesystem_${scala.binary.version}</artifactId>
<version>1.11.6</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-hadoop-bulk_2.12</artifactId>
<version>1.14.6</version>
</dependency>我正在使用以下版本:
<scala.version>2.12.16</scala.version>
<scala.binary.version>2.12</scala.binary.version>
<log4j.version>2.17.1</log4j.version>
<flink.version>1.15.1</flink.version>我是否需要一个与Java不同的Scala导入路径?
我希望Flink文档有示例代码片段中的导入,因为我花了很长时间试图找出这些导入。什么是推荐的._导入?
我查看了包中的符号,但没有找到FileSystem。我查找了不同的教程和示例项目,展示了如何使用Flink读取/侦听拼板和CSV文件。我以这种方式取得了一些进展,但我在Scala (不是Java)中找到的将Parquet文件用作源代码的少数示例中,即使添加了它们的依赖项并运行了mvn clean install,导入仍然无法工作。
发布于 2022-11-14 21:07:17
我尝试使用GitHub的预先搜索找到一个使用FileSource的公共Scala项目,并最终找到了一个具有以下依赖性的项目:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-files</artifactId>
<version>${project.version}</version>
</dependency>在index.scala-lang.org上缺少了这个包,我认为应该在那里寻找依赖项(这是我的第一个Scala项目,所以我认为这是在PyPi中找到类似PyPi的包的地方)。看起来可能是一个更好的去处。
发布于 2022-11-15 10:07:17
Flink 1.15有一个没有Scala的类路径,这使得许多Flink工件不再有Scala后缀。您可以在专门的Flink博客中阅读有关此主题的所有内容:https://flink.apache.org/2022/02/22/scala-free.html
您还可以在该博客中看到如何在Flink中使用任何Scala版本,而不是仅限于Scala2.12.6。TL;DR:您应该在应用程序中使用Java。Scala也将在Flink 1.17中被废弃。
最后但同样重要的是:不要混合和匹配Flink版本。那不管用。
https://stackoverflow.com/questions/74437560
复制相似问题