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

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

 

 

分享到:
评论

相关推荐

    Java 命令行解析器 JOpt Simple

    4. 使用OptionParser解析命令行参数,将结果存入OptionSet。 5. 从OptionSet中获取选项和参数值,进行业务逻辑处理。 在提供的压缩包`pholser-jopt-simple-df866e0`中,可能包含了JOpt Simple的源码、文档、示例...

    基于Java的实例源码-命令行解析器 JOpt Simple.zip

    然后,创建一个`OptionSet`实例,通过`Parser`类解析命令行参数: ```java OptionParser parser = new OptionParser(); OptionSet options = parser.parse(args); ``` ### 4. 解析命令行参数 解析完成后,可以...

    Java 命令行解析器 JOpt Simple.7z

    此外,您可以利用`OptionParser`类来定义更复杂的命令行结构。 通过深入理解并充分利用JOpt Simple的功能,开发者可以构建出功能强大且易于使用的命令行接口,提高Java应用程序的用户体验。无论是在开发简单的工具...

    Python库 | scopt-0.0.3-py3-none-any.whl

    `scopt`就是这样一个Python库,用于命令行选项解析,它在后端开发中特别有用,尤其是处理命令行接口(CLI)工具时。 `scopt-0.0.3-py3-none-any.whl` 是一个Python的可分发包格式,称为wheel文件。这种文件格式是为了...

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

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

    python命令行传参详解,optparse模块OptionParse类的学习.pdf

    下面我们将深入探讨`optparse`的工作原理以及如何使用`OptionParser`类。 首先,我们创建一个`OptionParser`对象,这是`optparse`的核心: ```python from optparse import OptionParser parser = OptionParser() ...

    matlab开发-Optionparser

    2. **Option解析**:`optparse.m`会解析输入的命令行参数,将它们与预定义的选项进行匹配,并填充到结果结构体中。如果用户提供了非法选项或者缺少必需的选项,解析器会抛出错误信息。 3. **Usage提示**:...

    python 命令行参数

    `action`是`parse_args()`方法的一个参数,它指示`optparse`在解析到一个命令行参数时应采取的行动。默认情况下,`action`是`'store'`,意味着将参数值存储在`options`对象中。 例如: ```python parser.add_...

    Ruby-将Ruby变成一个多功能命令行实用程序

    OptionParser.new do |opts| opts.banner = "Usage: my_tool [options]" opts.on("-v", "--[no-]verbose", "Run verbosely") do |v| @options[:verbose] = v end opts.on("-f", "--file FILE", "File to ...

    python命令行参数用法实例分析

    总结来说,`optparse`是Python 2.x中处理命令行参数的有效工具,通过创建OptionParser对象、添加选项、解析参数和处理选项,可以轻松地构建具有命令行选项的Python脚本。虽然在Python 3.x中已被`argparse`替代,但在...

    Ruby-TorS一个命令行的torrent搜索应用

    1. **命令行参数处理**:Ruby的`OptionParser`库或`ARGV`全局数组可以帮助解析命令行参数,根据用户提供的选项进行相应操作。 2. **HTTP请求与解析**:为了与torrent搜索引擎交互,需要使用如`Net::HTTP`库发送HTTP...

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

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

    使真棒命令行应用程序简单易行-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

    利用python-nmap模块探测所有主机445端口的开放状态.pptx

    可以使用 OptionParser 库来解析命令行参数,使得函数可以从命令行中指定目标主机和端口。 ``` def main(): parser = optparse.OptionParser('usage %prog –H &lt;target host&gt; -p &lt;target port&gt;') parser.add_...

    python optparse命令解析模块.docx

    `optparse`模块的核心在于`OptionParser`类,它允许开发者定义各种命令行选项,并自动处理`-h`或`--help`选项,生成帮助信息。在创建`OptionParser`实例时,你可以通过`usage`参数定义命令行的使用方式,例如`"usage...

    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很难创建...

Global site tag (gtag.js) - Google Analytics