加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 在Apache Spark中传递参数

发布时间:2020-12-16 09:03:04 所属栏目:安全 来源:网络整理
导读:我在本地计算机上运行此代码: import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp { def main(args: Array[String]) { val logFile = "/Users/username/Spark/README.md" val
我在本地计算机上运行此代码:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SimpleApp {
  def main(args: Array[String]) {
    val logFile = "/Users/username/Spark/README.md"
    val conf = new SparkConf().setAppName("Simple Application")
    val sc = new SparkContext(conf)
    val logData = sc.textFile(logFile,2).cache()
    val numAs = logData.filter(line => line.contains("a")).count()
    val numBs = logData.filter(line => line.contains("b")).count()
    println("Lines with a: %s,Lines with b: %s".format(numAs,numBs))
  }
}

我想运行该程序,但在不同的文件上运行它 – 它目前只在README.md上运行.如何在运行Spark(或其他任何参数?)时传递另一个文件的文件路径.例如,我想将contains(“a”)更改为另一个字母.

我使程序运行:

$YOUR_SPARK_HOME/bin/spark-submit 
  --class "SimpleApp" 
  --master local[4] 
  target/scala-2.10/simple-project_2.10-1.0.jar

谢谢!

解决方法

当你设置你的主要

def main(args: Array[String]) {

你准备你的主要接受.jar行之后的任何东西作为参数.它会为你创建一个名为’args’的数组.然后像往常一样使用args [n]访问它们.

检查你的参数类型和/或格式可能会很好,通常是你以外的任何人都可以运行它.

所以不要设置

val logFile = "String here"

设置它

val logFile = args(0)

然后将该文件作为第一个参数传递.检查spark-submit文档以获取更多信息,但是,您只需在下一行输入它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读