如何从SCALA中的表中提取与列表中存在的索引相对应的行。?

时间:2017-04-03 13:28:48

标签: scala apache-spark-sql

使用Scala,我将一个hive表加载到spark中 该表有3列和10,000行。我也有这个清单:

List[Int] = List(43, 48, 353, 413, 645, 674, 764, 873, 1018, 1170, 1206, 1626)

我必须从表中提取与给定列表中存在的元素相对应的所有行(包含所有列)。我怎样才能做到这一点? 我需要数据帧格式的最终​​输出。

1 个答案:

答案 0 :(得分:-1)

val l = List(43, 48, 353, 413, 645, 674, 764, 873, 1018, 1170, 1206, 1626)
val table: Array[Array[T]] = ???
table.map(col => l.map(index => col(index)))

这将返回table的列,但仅返回您提到的行。请注意,如果您没有至少1627行,这将引发一些异常。

这假设您的tableArray,其元素是列。如果是Array[Row],则需要进行模拟:

l.map(index => table(index))