我有一个Java应用程序,其中使用Flink Api。因此,基本上,我想使用该代码来创建两个几乎没有记录的数据集,然后将它们与必要的字段一起注册为两个表。

 DataSet<Company> comp = env.fromElements(
                new Company("Aux", 1),
                new Company("Comp2", 2),
                new Company("Comp3", 3));

        DataSet<Employee> emp = env.fromElements(
                new Employee("Kula", 1),
                new Employee("Ish", 1),
                new Employee("Kula", 3));


        tEnv.registerDataSet("Employee", emp, "name, empId");
        tEnv.registerDataSet("Company", comp, "cName, empId");

然后,我尝试使用Table API将这两个表连接起来:
Table anotherJoin = tEnv.sql("SELECT Employee.name, Employee.empId, Company.cName FROM " +
                "Employee RIGHT JOIN Company on Employee.empId = Company.empId");

我只是在控制台上打印结果。 在我的计算机上本地可以完美地工作。我通过将fat-jar与依赖项结合使用来创建了maven-shade-plugin,并且尝试在AWS Lambda中执行它。

因此,当我尝试在那里执行它时,我被抛出以下异常(我仅发布了前几行):



我在Lambda中执行之前提取了jar,然后偶然发现所有依赖项都在那里。我不知道哪里出了问题?

任何帮助,将不胜感激。

最佳答案

您需要在pom-> maven-shaded-plugin->配置部分中添加以下代码:

<transformers>
    <!-- append default configs -->
    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
        <resource>reference.conf</resource>
    </transformer>
</transformers>

07-24 09:38