【发布时间】:2019-04-12 15:55:25
【问题描述】:
我需要创建一个 spark 过滤器语句,用于过滤在运行时动态传递给它的列列表。
我有一个 SQL 数据库表,其中有一列存储大数据表的列名列表。大数据表已分配给 spark 数据集,我需要使用此列列表来检查列表中找到的任何数据集列是否存在数据问题,例如 null 或空字符串,并返回受影响的行数.列的列表将在运行时确定。列表的大小会有所不同。
public int returnRowCount (List<String> columnsAffected, Dataset<Row> dataset) {
return dataset.filter(dataset.col(columnsAffected.get(0)).isNotNull()
|| dataset.col(columnsAffected.get(0)).notEqual("")
|| dataset.col(columnsAffected.get(1)).isNotNull()
|| dataset.col(columnsAffected.get(1)).notEqual("")
|| etc ).count();
}
我需要获取任何列列表和任何数据集的方法。我希望列表中受 null 或空字符串影响的任何列只计算一次
【问题讨论】:
标签: java apache-spark apache-spark-dataset