2017-04-03 1 views
-3

Scalaを使用して、スパークにハイブテーブルをロードしました このテーブルは3列と10,000行あります。私もこのリストを持っています:リストにあるインデックスに対応するSCALAのテーブルから行を抽出するにはどうすればいいですか?

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

与えられたリストにある要素に対応するテーブルからすべての行(すべての列を含む)を抽出する必要があります。どうやってやるの? データフレーム形式で最終出力が必要です。

+1

この意味は何である - 「スカラを使用して、私は3列と10000行を持つテーブルを持っています?」。 Scalaにはテーブルはありません。 Spark-SQLテーブルとSpark DataFrameについて話していますか? –

+0

はい、私はSpark-SQLテーブルとデータフレームを意味しました。私はこの表をデータフレームからのみ得ました。データフレーム自体から必要な行をフェッチすることは可能ですか? – upendra

答えて

-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)) 
+1

まあ...これを落札した人はコメントを残すはずです。 @Cyrille問題のステートメントに関する間違った前提を持つソリューションに飛び込む前に、要件についてもっと考えてみてください。 –

+1

@SarveshKumarSinghごめんなさい。彼らがそうでない頃まで、質問(と私が作った前提)は明らかだった。私はそれに応じて私の答えを編集しました。 –

関連する問題