【问题标题】:spark scala on windows machinewindows机器上的spark scala
【发布时间】:2016-04-12 07:39:07
【问题描述】:

我正在向class 学习。我已经运行了类中显示的代码,但出现以下错误。知道我应该怎么做吗?

我有 spark 1.6.1 和 Scala 版本 2.10.5(Java HotSpot(TM) 64 位服务器 VM,Java 1.8.0_74)

val datadir = "C:/Personal/V2Maestros/Courses/Big Data Analytics with Spark/Scala"

//............................................................................
////   Building and saving the model
//............................................................................

val tweetData = sc.textFile(datadir + "/movietweets.csv")
tweetData.collect()

def convertToRDD(inStr : String) : (Double,String) = {
    val attList = inStr.split(",")
    val sentiment = attList(0).contains("positive") match {
            case  true => 0.0
            case  false    => 1.0
     }
    return (sentiment, attList(1))
}
val tweetText=tweetData.map(convertToRDD)
tweetText.collect()

//val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
var ttDF = sqlContext.createDataFrame(tweetText).toDF("label","text")
ttDF.show()

错误是:

scala> ttDF.show()
[Stage 2:>                                                          (0 + 2) / 2]16/03/30 11:40:25 ERROR ExecutorClassLoader: Failed to check existence of class org.apache.spark.sql.catalyst.expressio
REPL class server at http://192.168.56.1:54595
java.net.ConnectException: Connection timed out: connect
        at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
       re/4729300

【问题讨论】:

  • 你能显示你创建 SparkContext 的行吗,sc
  • 我使用默认的..

标签: scala apache-spark


【解决方案1】:

我不是专家,但错误消息中的连接 IP 看起来像是专用节点,甚至是您的路由器/调制解调器本地地址。

如评论中所述,可能是您运行的上下文配置错误,试图将工作分散到不存在的集群中,而不是在您的本地 jvm 进程中。

有关更多信息,您可以阅读here 并尝试类似的东西

import org.apache.spark.SparkContext

val sc = new SparkContext(master = "local[4]", appName = "tweetsClass", conf = new SparkConf)

更新

由于您使用的是交互式 shell 和那里提供的 SparkContext,我想您应该将等效参数传递给 shell 命令,如下所示

<your-spark-path>/bin/spark-shell --master local[4]

这指示驱动程序在本地机器上为 spark 集群分配一个 master,在 4 个线程上。

【讨论】:

  • 但是当我在 python 中运行类似的代码时,它运行良好。话虽如此,我将运行您建议的代码
  • 请给我正确的命令。运行您的命令时出现错误scala&gt; new SparkContext(master = "local[4]", appName = "tweetsClass", conf = new SparkConf) &lt;console&gt;:26: error: not found: type SparkContext new SparkContext(master = "local[4]", appName = "tweetsClass", conf = new SparkConf) ^ scala&gt; val sc = new SparkContext(master = "local[4]", appName = "tweetsClass", conf = new SparkConf) &lt;console&gt;:25: error: not found: type SparkContext
【解决方案2】:

我认为问题在于连接性,而不是代码内部。

检查您是否可以实际连接到此地址和端口 (54595)。

【讨论】:

  • 我没听懂你。所有数据都在我的电脑上。命令tweetText.collect() 运行良好
  • 这与@user2543622 无关。我的意思是你不能连接到那个地址:端口!检查这个:stackoverflow.com/questions/29679951/…
  • 我查看了您的链接。但不确定如何解决我的问题。任何输入?
  • 我还注意到每次运行代码时端口都会发生变化:(
  • @user2543622 我现在什么都没想到,祝你好运。我会赞成你的问题。
【解决方案3】:

您的 spark master 可能无法在指定端口访问。使用 local[*] 使用较小的数据集和本地主机进行验证。然后,检查端口是否可访问或根据 Spark 端口配置更改端口 (http://spark.apache.org/docs/latest/configuration.html)

【讨论】:

    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 2013-07-02
    • 2018-07-15
    • 1970-01-01
    • 2018-05-25
    • 2022-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多