web-dev-qa-db-ja.com

spark <コンソール>:12:エラー:見つかりません:値sc

私は次のように書いた:

val a = 1 to 10000
val b = sc.parallelize(a)

そしてそれは言うエラーを示しています:

<console>:12: error: not found: value sc

何か助けはありますか?

8
Amitesh Ranjan

私の場合、ローカルWindowsシステムにsparkがインストールされていて、同じエラーが発生しましたが、以下の問題が原因でした。

問題:原因:Java.lang.RuntimeException:ルートスクラッチディレクトリ:/ tmp/HDFSのHiveは書き込み可能である必要があります

これは権限の問題が原因でした。以下のコマンドを使用して権限を変更することで解決しました。ログには「onhdfs」と表示されますが、これはWindowsシステム上にあります

E:\ winutils\bin\winutils.exe chmod 777 E:\ tmp\Hive

3
satish sasate

クラスパスが正しくない場合に発生します。これは 未解決の問題 in Spark現時点では。

> spark-Shell 

...
...
14/08/08 18:41:50 INFO SparkILoop: Created spark context..
Spark context available as sc.

scala> sc
res0: org.Apache.spark.SparkContext = org.Apache.spark.SparkContext@2c1c5c2e

scala> :cp /tmp
Added '/tmp'.  Your new classpath is:
...

scala> sc
<console>:8: error: not found: value sc

担当者の外部からクラスパスを修正する必要がある場合があります。

2

scが定義されていないため、このエラーが発生します。私は試してみます:

sc = SparkContext(appName = "foo")

私が通常起こるもう1つのことは、私も忘れていたため、クラスターでKerberosチケットを取得できないことです。


Solnankiが言及した「Sparkの未解決の問題」については、これはnotもはや当てはまらないと確信しています。

1
gsamaras

SparkContextがscとして初期化されているかどうか、spark-Shellコマンドの実行後に最初にログファイルを確認します。 SparkContextが正しく初期化されていない場合

spark環境でIPアドレスを設定する必要があります。

conf/spark.env.shのenvファイルを開き、以下の行を追加します

sPARK_LOCAL_IP = "127.0.0.1"をエクスポートします

1
uday

Cloudera QuickstartVMでSparkを試してみると、このエラーが発生しました。/user/sparkでのhdfsファイルのアクセス許可の問題であることが判明しました。

ユーザー「spark」に切り替えることができませんでした。ユーザーが利用できないというエラーが発生しました。以下のコマンドでファイルのパーミッションを変更すると、問題が解決しました。

Sudo -u hdfs hadoop fs -chmod -R 1777 /user/spark

scala> val data = 1 to 10000
data: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170...
scala> val distData = sc.parallelize(data)
distData: org.Apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:14
0
user3321437

このスレッド で述べたように、1つの解決策は、アクセス許可のチェックをオフにすることです。

Cloudera managerで、advancedの下のhdfs構成に移動し、「HDFS Service Advanced Configuration Snippet(Safety Valve)forhdfs-site.xml」に次のコードを入力します。

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

その後、HDFSコンポーネントを再起動する必要があります。

それは私のために働いた。ただし、実稼働環境には適さない場合があります。

0
Franc Drobnič

私は同じ問題に直面しました。私の場合、Java_HOMEが正しく設定されていなかったため、この問題が発生しました。驚くべきことに、SPARKが起動しますが、scコンテキストでインスタンスの作成に問題がありました。Java_HOMEを修正して正しいJavaディレクトリを指すようにすると、この問題は解決しました。パスが更新され、新しいセッションがオンになっていることを確認するために、セッションを閉じて新しいセッションを再度開く必要がありました。

これがお役に立てば幸いです。

0
Santosh Gaikwad