使用Scala,我将一个hive表加载到spark中 该表有3列和10,000行。我也有这个清单:
List[Int] = List(43, 48, 353, 413, 645, 674, 764, 873, 1018, 1170, 1206, 1626)
我必须从表中提取与给定列表中存在的元素相对应的所有行(包含所有列)。我怎样才能做到这一点? 我需要数据帧格式的最终输出。
答案 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
行,这将引发一些异常。
这假设您的table
是Array
,其元素是列。如果是Array[Row]
,则需要进行模拟:
l.map(index => table(index))