Array [Row]の形式のデータフレームの結果をRDD [Row]に変換するシナリオがあります。私は並列化を使用しようとしましたが、生産システムでは実現不可能な単一のシステムにデータ全体を含める必要があるため、使用したくありません。Array [Row]をRDD [Row]に変換するには
val Bid = spark.sql("select Distinct DeviceId, ButtonName from stb").collect()
val bidrdd = sparkContext.parallelize(Bid)
どうすればよいですか?私はこのリンク(How to convert DataFrame to RDD in Scala?)で与えられたアプローチを試みたが、それは私のために働かなかった。
val bidrdd1 = Bid.map(x => (x(0).toString, x(1).toString)).rdd
それはあなたがここで作成した変数Bid
ががDATAFRAME ないエラーにvalue rdd is not a member of Array[(String, String)]
ありがとうTzach、それは働いた。現在、私はテストデータに取り組んでいるので、collectを使用しました。最終コードには、結果をフラットファイルに保存することが含まれます。 – ibh
'collect'を使ってテストするのは便利で適切ですが、実際のコードとテストを分けてください。' collect'は 'collect'が呼び出されなかったのと同じように使用できない完全に異なる型を返します。 –