7

Spark SQL の例を試してみると、式が必要な場合を除いてうまく機能するようです。

scala> val teenagers = people.where('age >= 10).where('age <= 19).select('name)
<console>:23: error: value >= is not a member of Symbol
       val teenagers = people.where('age >= 10).where('age <= 19).select('name)

scala> val teenagers = people.select('name)
<console>:23: error: type mismatch;
 found   : Symbol
 required: org.apache.spark.sql.catalyst.expressions.Expression
       val teenagers = people.select('name)

文書化されていないインポートが必要なようです。

すべてを一括インポートする場合

import org.apache.spark.sql.catalyst.analysis._
import org.apache.spark.sql.catalyst.dsl._
import org.apache.spark.sql.catalyst.errors._
import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.plans.logical._
import org.apache.spark.sql.catalyst.rules._ 
import org.apache.spark.sql.catalyst.types._
import org.apache.spark.sql.catalyst.util._
import org.apache.spark.sql.execution
import org.apache.spark.sql.hive._

編集:...そして

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext._

できます。

4

2 に答える 2

4

あなたが欠けている暗黙の変換があります。

val sqlContext: org.apache.spark.sql.SQLContext = ???
import sqlContext._

ただし、Spark の最近の (およびサポートされている) バージョンでは、これが変更されています。

于 2014-09-09T13:21:52.853 に答える
4

Spark 2.0 は、SparkSessionが置き換えられた場所ですSQLContext

スコープ内で使用できないScala のSymbol型と Spark SQL の型からの暗黙的な変換があります。Column

SparkSessionインスタンスを作成したらimport、スコープ内に暗黙を設定します。

val spark: SparkSession = ...
import spark.implicits._

objectのscaladoc をimplicits参照してください。

に自動的にインポートされspark-shell、この明示的なインポートを行う必要がなかった理由。

于 2016-09-23T12:53:19.147 に答える