我有SQL查询

load1.sqlContext()
                .sql("select object_id, parent_id, object_id as root_id, attr_id, attr_name, value from load l1 where not exists (select 1 from load l2 where l2.object_id = l1.parent_id)").show(false);

结果查询 enter image description here

try 重写,但得到异常

Dataset<Row> test = load1.select(
        functions.col("object_id"),
        functions.col("parent_id"),
        functions.col("object_id").as("root_id"),
        functions.col("attr_id"),
        functions.col("attr_name"),
        functions.col("value"));
test.where(not(exists(load1.col("object_id"), x -> x.equalTo(test1.col("parent_id"))))).show(false);

例外情况

cannot resolve 'exists(load.object_id, lambdafunction((x_1 = load.parent_id), x_1))' due to argument data type mismatch: argument 1 requires array type, however, 'load.object_id' is of string type.

推荐答案

不是测试,而是try 使用左反连接

test.join(load1.select("object_id").withColumnRenamed("object_id", "parent_id"), "parent_id", "left_anti")
    .show(false);

Java相关问答推荐

如何使用解析器组合子解析Java数组类型签名?

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

如何让JFileChooser(DIRECTORIES_ONLY)从FolderName中的空白开始?

确定Java中Math.Ranb()输出的上限

如何使用Maven和Spring Boot将构建时初始化、跟踪类初始化正确传递到本机编译

使用Mockito进行的Junit测试失败

为什么Java Annotation接口覆盖对象类中的方法

如何获取Instant#of EpochSecond(?)的最大值

Spring和可编辑";where";@Query

Mac上的全屏截图在使用JavaFX时不能正常工作吗?

我如何知道MediaDiscoverer何时完成发现介质?

Javadoc在方法摘要中省略方法

Tinylog中的滚动文件会在每次应用启动时覆盖日志(log)文件

try 将JSON字符串响应从API转换为映射字符串、对象>;时出错

是否为计划任务补偿系统睡眠?

Android应用程序为错误的显示类型 Select 尺寸文件

在Java泛型中使用通配符时,如何推断类型

JavaFX:为什么我的ComboBox添加了一个不必要的单元格的一部分?

始终使用Spring Boot连接mongodb上的测试数据库

关于正则表达式的一个特定问题,该问题与固定宽度负向后看有关