【问题标题】:I am getting an error while creating a simple RDD in Spark在 Spark 中创建简单的 RDD 时出现错误
【发布时间】:2018-08-24 20:34:58
【问题描述】:

我正在使用 Jupyter notebook,刚开始学习 Apache spark,但在创建简单 RDD 时出错:

sc.parallelize([2, 3, 4]).count()

错误是:parallelize() missing 1 required positional argument: 'c' 每种情况都会发生这种情况,例如如果我尝试textFile(""),我会发现缺少位置参数。我有sparkcontext as sc,有人可以帮我解决这个问题。

【问题讨论】:

    标签: python apache-spark rdd


    【解决方案1】:

    你必须初始化一个 SparkContext。

    这是来自Learning Spark: Lightning-Fast Big Data Analysis的示例代码

    from pyspark import SparkConf, SparkContext
    conf = SparkConf().setMaster("local").setAppName("My App")
    sc = SparkContext(conf = conf)
    

    【讨论】:

      【解决方案2】:

      您必须定义 Spark 上下文和并行化的切片数量。例如:

      import pyspark as sp
      
      nSlices = 10
      sc = sp.SparkContext(appName='myApp')
      rdd = sc.parallelize([2,3,4],nSlices)
      
      # [...]
      sc.close()
      

      别忘了使用 spark-submit 调用你的程序

      【讨论】:

        【解决方案3】:

        只需添加这三行代码。它会解决问题。

        from pyspark import SparkConf
        from pyspark import SparkContext
        sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))
        

        【讨论】:

          【解决方案4】:

          我遇到了同样的问题。 SparkContex 已经由 pyspark 创建。以下方法可以解决问题:

          from pyspark import SparkConf
          from pyspark import SparkContext
          sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))
          

          【讨论】:

          • 你可以添加一些描述
          【解决方案5】:
          rdd = sc.parallelize([2, 3, 4])
          c = rdd.count()
          

          count() 方法返回一个 long 类型的值,而不是 rdd。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-14
            • 1970-01-01
            • 2019-10-09
            • 1970-01-01
            • 2011-11-25
            相关资源
            最近更新 更多