`
x10232
  • 浏览: 55560 次
  • 来自: 北京
社区版块
存档分类
最新评论

spark命令行解析与找不到类scopt.OptionParser

阅读更多

问题一:解析spark-submit命令行参数的时候用到了第三方包scopt,该包需要引入

<dependency>
  <groupId>com.github.scopt</groupId>
  <artifactId>scopt_2.10</artifactId>
  <version>3.2.0</version>
</dependency>

,引入之后直接使用idea打包(build-build artifacts-rebuild)报错:找不到类scopt.OptionParser

然后意识到是依赖没有打入包

重新配置file-project structure将所有包加入,重新打包,依然报同样错误

然后试图使用maven打包

首先配置

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>

  <configuration>
      <archive>
        <manifest>
          <mainClass>com.daojia.xing.SuYunSDK</mainClass>
        </manifest>
      </archive>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>

点击最左下脚图标 弹出上拉框 单机maven project  左侧出现对话框 然后plugins 选择assembly:assembly

问题解决。

ps:

问题二:程序中用到hive.hiveContext类,需要引入,之前引入了错误的包,导致程序提示有错误

正确的引入如下:

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-hive_2.10</artifactId>
  <version>1.6.1</version>
</dependency>

问题三:又是一个奇葩的问题,见识浅薄了,(String,String)不知道scala中这是个什么鬼,不是array,不是list,不是map,最后的最后发现scala有一个类型叫做元祖,在此纠结了好久,要加强学习

 

scala> val types=hiveContext.sql("select * from a_fin_account_day limit 10").dtypes
types: Array[(String, String)] = Array((work_date,StringType), (user_id,LongType), (account_id,LongType), (source,StringType), (sy_vip_flag,StringType), (sy_vip_account_type,StringType), (dk_bussiness,DoubleType), (balance,DoubleType), (recharge,DoubleType), (recharge_num,DoubleType), (consume,DoubleType), (consume_num,DoubleType), (order_balance_pay,DoubleType), (order_refund,DoubleType), (account_refund,DoubleType), (adjust,DoubleType), (is_new_charge,DoubleType), (dk_jz_consume,DoubleType), (dk_lr_consume,DoubleType), (bi_update_time,StringType))
scala> val line=types(0)
line: (String, String) = (work_date,StringType)
scala> line(0)
<console>:41: error: (String, String) does not take parameters
              line(0)
                ^
scala> line._1
res28: String = work_date

 

 

分享到:
评论

相关推荐

    python命令行参数解析OptionParser类用法实例

    本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考。 具体代码如下: from optparse import OptionParser parser = OptionParser(usage="usage:%prog [optinos] filepath") parser....

    Python命令行参数解析模块optparse使用实例

    主要介绍了Python命令行参数解析模块optparse使用实例,本文讲解了增加选项(add_option())、行为(action)、设置默认值(default)、生成帮助提示(help)、设置boolean值、错误处理、选项组(Grouping Options)等内容,需要...

    matlab开发-Optionparser

    matlab开发-Optionparser。工具箱函数的广义选项解析器

    使真棒命令行应用程序简单易行-Ruby开发

    概述S GLI,类似Git的界面命令行解析器¶↑GLI允许您在Ruby中创建行为类似于git的命令行应用程序,因为它需要子命令来执行一系列复杂的操作,例如git remote add。 概述Github RDoc上的资源GLI解决了什么问题?¶↑...

    Python 端口扫描器

    Python 端口扫描器 ...parser = optparse.OptionParser(“usage%prog” +” -H -P”) parser.add_option(“-H”,dest=“tgtHost”,type=“string”,help=“specify target port”) parser.add_optio

    optparse-simple:简约的 Ruby 选项解析器(基于 OptionParser API)

    opts = OptionParser.new do |opts| opts.on('-f', '--foo'){ ... } end opts.parse! args 我真的很喜欢 optparse 但是: 我不关心分隔符/横幅/等,我使用其他宝石/库来处理这些东西 optparse 是一个要扩展的 ...

    Python中optionParser模块的使用方法实例教程

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值。分享给大家供大家参考之用。具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一...

    option-parser-js:解析命令行程序的选项,类似于 getopt 的工作方式

    OptionParser - JavaScript 版本OptionParser是一个帮助您解析命令行选项的库,类似于getopt工作方式。 努力使其符合 POSIX 标准并易于人们使用。 集成了许多其他实现的功能,以提供显着的灵活性并使其更易于使用。 ...

    gli:使真棒命令行应用程序简单易行

    GLI,类似于Git的界面命令行解析器 GLI允许您在Ruby中创建行为类似于git命令行应用程序,因为它需要子命令来执行一系列复杂的操作,例如git remote add 。GLI解决了什么问题? 使用Ruby的内置OptionParser很难创建...

    SDB-Generic-Parser:使用架构映射的通用解析器

    lxml-基于C库libxml2和libxslt的快速XML解析器OptionParser-用于解析命令行选项的灵活库psycopg2-用于postgresql的数据库连接器。 警告:还需要在路径中安装和配置Visual Studio 此外,需要两个XML文件。 一个是要...

    optparse-js:用于Javascript的选项解析器

    Optparse-js是Javascript的命令行选项解析器。 它稍微基于Ruby的optparse实现,但有一些差异(不同的语言具有不同的需求),例如自定义解析器。 本自述文件中的所有示例都使用 但是,该库可与各种Javascript实现...

    commander:Ruby命令行可执行文件的完整解决方案

    使用OptionParser解析选项 用选项自动填充结构(不再使用{ |v| options[:recursive] = v } ) 通过可插入的帮助格式化程序自动生成帮助文档 不存在时的可选默认命令 全局/命令级别选项 与两个帮助格式化程序...

    JavaOptParser:受 OptParser ruby​​ 类启发的 Java Option 解析器

    Java Simple Option 解析器的灵感来自 ruby​​ OptParser 类 ( )。 这项工作是作为西波西米亚大学 ( ) 学期工作的一部分创建的。 安装 将 java 源文件添加到您的项目中,并将它们导入到您要使用它们的文件中。 用法...

    OptParser:受 Rubys OptionParser 类启发的用于 C++ 的 CLI-Optionsparser

    #OptParser 受 Rubys OptionParser 类启发的用于 C++ 的 CLI-Optionsparser用法首先包括OptParser.h 以下示例代码应清楚说明: OptParser *options = new OptParser();options-&gt; setHelpText ( " this is an example...

    Strings2Xls.py 字符串转换excel

    from optparse import OptionParser from StringsFileUtil import StringsFileUtil import pyExcelerator import time # Add command option def addParser(): parser = OptionParser() parser.add_option("-f...

    python optparse模块使用实例

    使用命令行时,如果要添加选项的话,python 2.3里新增加了一个模块叫optparse,也是专门来处理命令行选项的。 复制代码 代码如下: from optparse import OptionParser parser = OptionParser() parser.add_option...

    optparse-plus:直接在Ruby中启动命令行脚本

    用于创建命令行界面的轻量级DSL,不会失去OptionParser的功能。 一种简化的运行外部命令的方法,具有更好的错误处理和诊断功能。 简化的零配置日志记录是一个好于puts puts 。 支持使用Test :: Unit对CLI进行集成...

    Python中optparse模块使用浅析

    使用此模块前,首先需要导入模块中的类OptionParser,然后创建它的一个实例(对象): 复制代码 代码如下: from optparse import OptionParser parser = OptionParser() #这里也可以定义类的参数,后续有 接着就...

    使用Python把数据写入Excel

    op=OptionParser(usage=usage) op.add_option('-d','--datasetfile',dest='dataset_file',help='input a dataset file') op.add_option('-x','--xlsfile',dest='xls_file',help='output a excel file with one ...

Global site tag (gtag.js) - Google Analytics