问题一:解析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
相关推荐
4. 使用OptionParser解析命令行参数,将结果存入OptionSet。 5. 从OptionSet中获取选项和参数值,进行业务逻辑处理。 在提供的压缩包`pholser-jopt-simple-df866e0`中,可能包含了JOpt Simple的源码、文档、示例...
然后,创建一个`OptionSet`实例,通过`Parser`类解析命令行参数: ```java OptionParser parser = new OptionParser(); OptionSet options = parser.parse(args); ``` ### 4. 解析命令行参数 解析完成后,可以...
此外,您可以利用`OptionParser`类来定义更复杂的命令行结构。 通过深入理解并充分利用JOpt Simple的功能,开发者可以构建出功能强大且易于使用的命令行接口,提高Java应用程序的用户体验。无论是在开发简单的工具...
`scopt`就是这样一个Python库,用于命令行选项解析,它在后端开发中特别有用,尤其是处理命令行接口(CLI)工具时。 `scopt-0.0.3-py3-none-any.whl` 是一个Python的可分发包格式,称为wheel文件。这种文件格式是为了...
本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考。 具体代码如下: from optparse import OptionParser parser = OptionParser(usage="usage:%prog [optinos] filepath") parser....
下面我们将深入探讨`optparse`的工作原理以及如何使用`OptionParser`类。 首先,我们创建一个`OptionParser`对象,这是`optparse`的核心: ```python from optparse import OptionParser parser = OptionParser() ...
2. **Option解析**:`optparse.m`会解析输入的命令行参数,将它们与预定义的选项进行匹配,并填充到结果结构体中。如果用户提供了非法选项或者缺少必需的选项,解析器会抛出错误信息。 3. **Usage提示**:...
`action`是`parse_args()`方法的一个参数,它指示`optparse`在解析到一个命令行参数时应采取的行动。默认情况下,`action`是`'store'`,意味着将参数值存储在`options`对象中。 例如: ```python parser.add_...
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 ...
总结来说,`optparse`是Python 2.x中处理命令行参数的有效工具,通过创建OptionParser对象、添加选项、解析参数和处理选项,可以轻松地构建具有命令行选项的Python脚本。虽然在Python 3.x中已被`argparse`替代,但在...
1. **命令行参数处理**:Ruby的`OptionParser`库或`ARGV`全局数组可以帮助解析命令行参数,根据用户提供的选项进行相应操作。 2. **HTTP请求与解析**:为了与torrent搜索引擎交互,需要使用如`Net::HTTP`库发送HTTP...
主要介绍了Python命令行参数解析模块optparse使用实例,本文讲解了增加选项(add_option())、行为(action)、设置默认值(default)、生成帮助提示(help)、设置boolean值、错误处理、选项组(Grouping Options)等内容,需要...
概述S GLI,类似Git的界面命令行解析器¶↑GLI允许您在Ruby中创建行为类似于git的命令行应用程序,因为它需要子命令来执行一系列复杂的操作,例如git remote add。 概述Github RDoc上的资源GLI解决了什么问题?¶↑...
Python 端口扫描器 ...parser = optparse.OptionParser(“usage%prog” +” -H -P”) parser.add_option(“-H”,dest=“tgtHost”,type=“string”,help=“specify target port”) parser.add_optio
可以使用 OptionParser 库来解析命令行参数,使得函数可以从命令行中指定目标主机和端口。 ``` def main(): parser = optparse.OptionParser('usage %prog –H <target host> -p <target port>') parser.add_...
`optparse`模块的核心在于`OptionParser`类,它允许开发者定义各种命令行选项,并自动处理`-h`或`--help`选项,生成帮助信息。在创建`OptionParser`实例时,你可以通过`usage`参数定义命令行的使用方式,例如`"usage...
opts = OptionParser.new do |opts| opts.on('-f', '--foo'){ ... } end opts.parse! args 我真的很喜欢 optparse 但是: 我不关心分隔符/横幅/等,我使用其他宝石/库来处理这些东西 optparse 是一个要扩展的 ...
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值。分享给大家供大家参考之用。具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一...
OptionParser - JavaScript 版本OptionParser是一个帮助您解析命令行选项的库,类似于getopt工作方式。 努力使其符合 POSIX 标准并易于人们使用。 集成了许多其他实现的功能,以提供显着的灵活性并使其更易于使用。 ...
GLI,类似于Git的界面命令行解析器 GLI允许您在Ruby中创建行为类似于git命令行应用程序,因为它需要子命令来执行一系列复杂的操作,例如git remote add 。GLI解决了什么问题? 使用Ruby的内置OptionParser很难创建...