問題タブ [apache-spark-sql]
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.
hadoop - 選択クエリを実行する場合、HiveContext.sql() はどのように機能しますか?
環境:
スパーク-1.2.0-ビン-hadoop2.4
こんにちは、みんな、
最近、同じテーブルに参加するクエリを取得しました
a_huge_table
非常に巨大なものでありcolumn_for_join
、インデックスを持っていません (私は DBA ではないので、私はそれを手伝うことができません - 彼らは拒否します)
このクエリは、Hive CLI (合計 200 未満のマッピングで 2 ステージ) で 3 ~ 5 分必要ですが、を使用するHiveContext.sql()
と、非常に悪い方法で崩壊します -> 4 ステージ、30 分/ステージ。
を使用するspark.sql.codegen
とステージ数が 2 に減りますが、各ステージの時間コストは減りません。このテーブルは 1 回しか使用されないため、HiveContext.CacheTable() はあまり役に立たないと思います。スパークで使用される方法は、ハイブでは多少異なると思います。
私はスパークソースを掘り下げようとしましたが、理解するのがHiveContext.sql(SqlText)
難しいSchemaRDD(HiveContext, LogicalPlan_Created_by_Parser_using_SqlText )
ことが分かりました: それから私は立ち往生しました。スパークがハイブからデータを取得する方法をまだ理解していません。SchemaRDDLike
sqlContext.executePlan
executedPlan.execute()
SparkPlan.execute()
SparkPlan.execute()
SELECT
では、spark SQL はどのように機能するのでしょうか? Spark SQL をよりよく理解するために読むべきドキュメントはありますか?
ちなみにHiveContext().sql():SchemaRDD
はなくなり、master ブランチのバージョンは になりHiveContext().sql():DataFrame
ました。彼らは物事をとても速く変えます。
java - Cassandra-spark-connector は、cassandra テーブルからタイムスタンプ データ型を受け入れますか?
spark-cassandra-connector を使用して、cassandra テーブルで spark を介して分析を実行しています。テキストファイルの1つをタイムスタンプフィールドに変更するまで、すべてが正常に機能していました。私がそれをしたら、それは私にエラーを与えます
私のコードは次のとおりです。
私のコードに問題はありますか?
python - 非常に大量の列を持つディクショナリの定義
Spark SQL に移動したいデータセットがあります。このデータセットには約 200 の列があります。これを行うために私が見つけた最良の方法は、データを辞書にマッピングしてから、その辞書をspark sqlテーブルに移動することです。
問題は、それを辞書に移動すると、コードが非常にハッキーになり、堅牢でなくなることです。私はおそらく次のようなものを書かなければならないでしょう:
これ以上入力する気がしなかったので、13 列しか入力しませんでしたが、おわかりいただけたでしょうか。
CSV を R のデータ フレームに読み込み、列名を変数に指定し、その変数を使用してすべての列に名前を付ける方法と同様のことをしたいと思います。
例:
現時点では、spark でデータ構造を使用できないため、pandas データ フレームを使用できません。
Rでデータフレームを作成する方法と同様に、Pythonで辞書を作成する方法はありますか?
scala - Spark Streaming で DStream.transform() で SQL を使用しますか?
で SQL over Spark Streaming を使用する例がいくつかありますforeachRDD()
。しかし、SQL を使用したい場合tranform()
:
私はそのようなエラーを得ました:
[エラー] /Users/raochenlin/Downloads/spark-1.2.0-bin-hadoop2.4/logstash/src/main/scala/LogStash.scala:52: メソッド transform の型パラメーターがありません: (transformFunc: org.apache. spark.rdd.RDD[String] => org.apache.spark.rdd.RDD[U])(暗黙の証拠$5: scala.reflect.ClassTag[U])org.apache.spark.streaming.dstream.DStream[U ] が存在するため、引数に適用できます (org.apache.spark.rdd.RDD[String] => org.apache.spark.rdd.RDD[_ >: LogStash.AlertMsg with String <: java.io.Serializable ]) [エラー] --- 理由 --- [エラー] 引数式の型が仮パラメータ型と互換性がありません。[エラー] が見つかりました: org.apache.spark.rdd.RDD[文字列] => org.apache.spark.rdd.RDD[_ >: 文字列 <: java.io.Serializable] を持つ LogStash.AlertMsg [エラー] が必要です: org.apache.spark.rdd.RDD[文字列] => org.apache.spark.rdd.
私が使用する場合にのみsqlreport.map(r => r.toString)
、正しい使用法になる可能性がありますか?
apache-spark - Spark SQL DSL で文字列の長さを計算する
編集:これはSpark 1.2に関する古い質問です
orderBy の目的で、SchemaRDD の文字列列の長さをオンザフライで計算しようとしています。私は Spark SQL を学んでいるので、私の質問は、Spark SQL が公開する DSL または SQL インターフェイスの使用、またはそれらの制限を知ることについて厳密です。
私の最初の試みは、たとえば、統合されたリレーショナル クエリを使用することでした。
コンパイルで運が悪い:
(これにより、この DSL が実際に解決できる「式」がどこにあるのか疑問に思います。たとえば、列の追加の「+」を解決します。)
それから私は試しました
これは失敗します
(それから私はこれを読み直しました (私は 1.2.0 を実行しています) http://spark.apache.org/docs/1.2.0/sql-programming-guide.html#supported-hive-features とどのような意味で Spark SQLリストされたハイブ機能をサポートします。)
質問: 長さ演算子は、式や SQL ステートメントで本当にサポートされていますか? はいの場合、構文は何ですか? (おまけ: Spark SQL Expressions で解決されるものと、一般的な構文についての特定のドキュメントはありますか?)
ありがとう!