問題タブ [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 - SparkSQL DataFrame の MapType 列からキーと値を取得する方法
と の 2 つのフィールドを持つ寄木細工のファイルにデータがありobject_id: String
ますalpha: Map<>
。
これは sparkSQL のデータ フレームに読み込まれ、スキーマは次のようになります。
私はSpark 2.0を使用しており、次のように列にマップobject_id
のキーを追加する必要がある新しいデータフレームを作成しようとしていますALPHA
object_id, key1, key2, key2, ...
私は最初に、少なくとも次のようにマップにアクセスできるかどうかを確認しようとしていました:
残念ながら、マップのキーにアクセスする方法を理解できないようです。
object_id
プラス マップ キーを列名として取得し、値を新しいデータフレームのそれぞれの値として取得する方法を教えてください。
apache-spark - Apache Spark SQL で列が null 許容に変更されるのはなぜですか?
nullable = true
に NaN 値がない場合でも、一部の関数が実行された後にWhy が使用されますDataFrame
。
がdf.printSchema
呼び出されるnullable
とfalse
、両方の列が対象になります。
ただし、以前nullable
はtrue
少なくとも 1 つの列が対象でしfalse
た。これはどのように説明できますか?
scala - Spark データセットを使用して Scala で型付き結合を実行する
コンパイル時に分析エラーと構文エラーが発生し、ハードコーディングされた名前/番号の代わりにゲッターを使用できるため、Spark データセットが気に入っています。ほとんどの計算は、Dataset の高レベル API で実行できます。たとえば、RDD 行のデータ フィールドを使用するよりも、Dataset 型付きオブジェクトにアクセスすることで、agg、select、sum、avg、map、filter、または groupBy操作を実行する方がはるかに簡単です。
ただし、これには結合操作がありません。このような結合を行うことができると読みました
しかし、それは私が望むものではなく、ケース クラス インターフェイスを介して行うことを好むので、このようなものです。
今のところ最良の代替手段は、ケース クラスの横にオブジェクトを作成し、この関数を使用して正しい列名を文字列として提供することです。したがって、コードの最初の行を使用しますが、ハードコーディングされた列名の代わりに関数を配置します。しかし、それは十分にエレガントに感じません..
誰かがここで他のオプションについて私にアドバイスできますか? 目標は、実際の列名から抽象化し、できればケース クラスのゲッターを介して機能することです。
Spark 1.6.1 と Scala 2.10 を使用しています
scala - 火花時間差
spark 1.5.x から、時間を処理するためにいくつかの便利なメソッドが追加されました。
しかし、これは差を日数で返します。年などの別の間隔に変換するオプションはありますか?
手動で使用しました
これで十分です。しかし、表示されているような月/日を含むなど、日付の差がより正確に計算された方が良いでしょう誕生/
UDF は現在の Spark 2.0.2 の主要なソリューションですか? または、差を日として年に変換するオプションがありませんか?
apache-spark - spark はタスクの数をどのように決定しますか?
多数のテキスト ファイルを読み取るときに、Spark によって作成されるタスクの数に少し混乱しています。
コードは次のとおりです。
各フォルダーa, b, c
には 24 個のファイルが含まれているため、フォルダー全体b
が読み取られるため、合計 26 個のファイルが存在します。のようなアクションを実行する.count()
と、Spark UI に 24 個のタスクがあることが示されます。ただし、パーティションごとに 1 つのタスク、ファイルごとに 1 つのパーティションのように、26 のタスクがあると思っていたでしょう。
実際に何が起こっているのかについて、誰かが私にもう少し洞察を与えることができれば、それは素晴らしいことです.
scala - Encoder をパラメーターとしてデータフレームの as メソッドに渡す方法
別のケース クラスを使用して、dataFrame を dataSet に変換したいと考えています。今、私のコードは以下のようなものです。
それで、私の質問は、「とにかく、この関数への追加のパラメーターとしてパスケースクラスを使用して、これに 1 つの一般的な関数を使用できるものはありますか?」です。
apache-spark - Spark のシンプルな value_counts
Sparkに似たもの- キーでグループ化し、値でカウントするdf.series.value_counts()
と、Spark でパンダの機能をエミュレートして次のことができます。
結果のオブジェクトは降順になるため、最初の要素が最も頻繁に発生する要素になります。デフォルトで NA 値を除外します。( http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.value_counts.html )
Spark のデータ フレームでこれをより適切に/より簡単に実現できないかどうか、私は興味があります。