問題タブ [apache-spark-dataset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Spark データセット: 例: エンコーダの問題を生成できません
Spark world が初めてで、オンラインで見つけた scala で記述されたデータセットの例を試す
SBT を介して実行すると、次のエラーが発生し続けます
org.apache.spark.sql.AnalysisException: Unable to generate an encoder for inner class
私が見落としているものは何か
また、同じデータセットの例を書くためのより良い方法を自由に指摘してください
ありがとう
コード :
JSON ファイル (student.json) :
scala - Apache Spark RDD の代替
次のようなデータセットがあるような問題を解決しようとしています:
(1 -> 2)
となので (2 -> 7)
、セット(2, 7)
を(1, 7)
同様に置き換え(3 -> 7)
、(7 -> 4)
また(7,4)
asに置き換えたいと思います(3, 4)
したがって、私のデータセットは
これを解決または取り組む方法はありますか?
ありがとう
python - pyspark RDD/データフレームのグループごとにランダムな列を選択する
私のデータフレームには10,0000列があり、各グループにいくつかのロジックを適用する必要があります(キーは地域と部門です)。各グループは、10k 列から最大 30 列を使用します。30 列のリストは、2 番目のデータ セット列「colList」からのものです。各グループには 2 ~ 300 万行あります。私のアプローチは、キーごとにグループ化し、以下のように関数を呼び出すことです。しかし、それは失敗します - 1.シャッフルし、2.データグループが2Gを超えています(再パーティションで解決できますが、コストがかかります)、3.非常に遅い
入力:
各グループで選択する列: (データセット 2)
私の 2 番目の解決策は、30 列のみの入力データから新しいデータ セットを作成し、列の名前を col1 から col30 に変更することです。次に、列とグループごとにマッピング リストを使用します。次に、10K 列の元の入力よりもスキナーになる groupbyKey (仮定) を適用できます。
10K の入力を 30 列に変換するのに役立つ人はいますか? または、グループ化を避けるために、他の代替手段を使用しても問題ありません。
scala - データセットからの RDD により、Spark 2.x でシリアル化エラーが発生する
Databricks ノートブックを使用してデータセットから作成した RDD があります。
そこから具体的な値を取得しようとすると、シリアル化エラー メッセージが表示されて失敗します。
これが私のデータを取得する場所です(PageCountはCaseクラスです):
それから私がするとき:
次の例外が発生します。
データセットで同じ試みが機能しますが:
編集 :
ここに完全なスタックトレースがあります
scala - Apache Spark MLLib の DataFrames によるオンライン リアルタイムの単一項目予測、真剣に?
mllib モデルをトレーニングした後、オンライン システムのすべての着信アイテムを DataFrame に変換して、予測/変換のようなメソッドを呼び出す必要がありますか? 時間/メモリ関連の問題のリスクが高いやり過ぎのように見えます。
どうにかして1つの行だけを構築/変換/予測できますか? (Scala でのソリューションが望ましい)
著者がこのために独自の何かを実装したと言っているテキストを見つけました: https://www.oreilly.com/ideas/training-and-serving-nlp-models-using-spark-mllib
apache-spark - Spark データセット - 強い型付け
Spark Datasets に関して、厳密に型指定された API と型指定されていない API とは何ですか?
データセットは DataFrame とどのように似ていますか?
apache-spark - Spark DataFrame/DataSet で行を異なる列に分割する方法は?
次のようなデータセットがあるとします。
Y2列が次のように削除されるように、このデータセットの行を分割したい:
誰かがここで何か提案できますか? 質問が明確になったことを願っています。前もって感謝します。
scala - Spark / Scala: nan を最後の良好な観測値で埋める
私はspark 2.0.1を使用しており、nan値を列の最後の適切な既知の値で埋めたいと思っています。
私が見つけることができたスパークの唯一のリファレンスは、 Spark / Scala: 最後の観測によるフォワードフィルまたはRDDを使用していると思われるpysparkで以前に既知の適切な値でnullを埋めることです。
データフレーム/データセットの世界にとどまり、複数の nan 値を処理できるようにしたいと考えています。これは可能ですか?
私の仮定では、データ (たとえば、CSV ファイルから最初にロードされたもの) は時間順に並べられ、この順序は分散設定で保持されます。たとえば、近い値/最後の適切な既知の値で埋めることは正しいです。おそらく、ほとんどの場合、以前の値で埋めることで十分です。連続する 2 つ以上の nan レコードはありません. これは実際に成り立ちますか? ポイントは、
あらゆる順序を破壊します。たとえば、すべてのnull
値が最初に来ます。
小さな例:
結果は
最後の適切な既知の値で値を修正したいと思います。どうすればこれを達成できますか?
編集
私の場合、非常に限られた誤った値しかないため、上の行の値を入力するだけで十分です。
編集2
インデックス列を追加しようとしています
そして、最後の値を入力します。
ただし、次の警告が表示 されます。ウィンドウ操作にパーティションが定義されていません! すべてのデータを 1 つのパーティションに移動すると、パフォーマンスが大幅に低下する可能性があります。どうすれば意味のあるパーティションを導入できますか?
scala - Spark 2.0 データセットとデータフレーム
spark 2.0.1 から始めて、いくつか質問がありました。多くのドキュメントを読みましたが、これまでのところ十分な答えが見つかりませんでした:
- 違いは何ですか
df.select("foo")
df.select($"foo")
- 私はそれを正しく理解していますか
myDataSet.map(foo.someVal)
タイプセーフであり、変換されませんRDD
が、DataSet 表現にとどまります / 追加のオーバーヘッドはありません (2.0.0 のパフォーマンスに関して)
- select などの他のすべてのコマンドは、単なるシンタックス シュガーです。タイプセーフではなく、代わりにマップを使用できます。
df.select("foo")
map ステートメントなしでタイプセーフにする にはどうすればよいですか?- マップの代わりに UDF / UADF を使用する必要があるのはなぜですか (マップがデータセット表現にとどまると仮定して)?