我有一个表"数据"与列id(varchar),文本(varchar),日期(日期).在mysql上创建索引,我使用的是heidiSQL.
当我右键单击该列并选择创建新索引(键)时,代码显示它正在使用 alter table data add index 'index1' ('id,date(10)')
这和之间有什么区别? create index index1 on data ('id,date(10)')
我从Python boto2库中调用此方法:
boto.emr.step.StreamingStep(name, mapper, reducer=None, combiner=None, action_on_failure='TERMINATE_JOB_FLOW', cache_files=None, cache_archives=None, step_args=None, input=None, output=None, jar='/home/hadoop/contrib/streaming/hadoop-streaming.jar')
Run Code Online (Sandbox Code Playgroud)
我知道后面的参数mapper
有默认值,所以我不必指定它们的值.但是如果我想在最后只为一个参数传递一个值呢?例如,我要为提供值name
,mapper
和combiner
参数,只是使用的默认值reducer
.
我应该这样做:
boto.emr.step.StreamingStep('a name', 'mapper name', None, 'combiner name')
Run Code Online (Sandbox Code Playgroud)
或者我应该在它之前明确地传递所有论点?
如果有100个参数,并且我只想为最后一个参数传递一个值,那么我必须向它传递许多默认值.有更简单的方法吗?
我从别人那里得到了一个脚本。并且有一个模块导入到脚本中。我想知道找出安装此库的 pip 包的最佳方法是什么(在线搜索除外)。
我尝试导入包,然后只对它执行 help() 但没有得到太多信息。有没有可靠和pythonic的方法来实现这一目标?
例如:
在脚本中它有一行
from impala.dbapi import connect
Run Code Online (Sandbox Code Playgroud)
不用在网上搜索,我怎么知道下面的包可以安装这个库?正如您在这种情况下所看到的,包名称与 pip 中使用的名称不同。
pip install impyla
Run Code Online (Sandbox Code Playgroud) 当我创建一个以 JSON 格式存储数据的 hive 表时,我使用了 org.apache.hive.hcatalog.data.JsonSerDe,其中一个 SERDEPROPERTIES 是'serialization.format' = '1'
.
但是,我找不到关于此属性的任何文档,其中列出了格式 1 是什么以及其他选项是什么。我还想知道 SERDEPROPERTIES 有哪些其他选项。
我一直在网上搜索并阅读 Hive 的 LanguageManual DDL 页面中的所有相关链接,但仍然找不到任何内容。有人能指出我正确的方向吗?欣赏它。
我在JDK 7中使用Tomcat 7和Eclipse来创建这个简单的servlet应用程序.但是当我将war文件复制到tomcat时,我无法启动它并得到此错误:
名为[create_subscription]和[servlet.create]的servlet都映射到url-pattern [/ create],这是不允许的
web.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>CC</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>create_subscription</servlet-name>
<servlet-class>servlet.create</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>create_subscription</servlet-name>
<url-pattern>/create</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud) 我正在使用MySQL。这是一个示例,我想将表A重命名为B,因此以下语句之间有什么区别:
alter table A rename to B;
Run Code Online (Sandbox Code Playgroud)
还有这个:
rename table A to B;
Run Code Online (Sandbox Code Playgroud)
谁能提供详细的比较?是否因引擎不同而有所差异?
我在LOAD DATA INFILE
InnoDB表上使用,我看到"系统锁定"状态SHOW PROCESSLIST
.在这种情况下,InnoDB究竟锁定了什么?如何查看锁定的内容?
我正在使用emr-5.4.0和Spark 2.1.0.我明白这NullPointerException
是什么,这个问题是为什么在这个特殊情况下抛出了这个问题.
无法弄清楚为什么我在驱动程序线程中得到NullPointerException.
我得到了这个奇怪的工作失败了这个错误:
18/03/29 20:07:52 INFO ApplicationMaster: Starting the user application in a separate Thread
18/03/29 20:07:52 INFO ApplicationMaster: Waiting for spark context initialization...
Exception in thread "Driver" java.lang.NullPointerException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:637)
18/03/29 20:07:52 ERROR ApplicationMaster: Uncaught exception:
java.lang.IllegalStateException: SparkContext is null but app is still running!
at org.apache.spark.deploy.yarn.ApplicationMaster.runDriver(ApplicationMaster.scala:415)
at org.apache.spark.deploy.yarn.ApplicationMaster.run(ApplicationMaster.scala:254)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$main$1.apply$mcV$sp(ApplicationMaster.scala:766)
at org.apache.spark.deploy.SparkHadoopUtil$$anon$1.run(SparkHadoopUtil.scala:67)
at org.apache.spark.deploy.SparkHadoopUtil$$anon$1.run(SparkHadoopUtil.scala:66)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:66)
at org.apache.spark.deploy.yarn.ApplicationMaster$.main(ApplicationMaster.scala:764)
at …
Run Code Online (Sandbox Code Playgroud) 我有一个函数,要求输入是一个字符串.
我知道我可以断言或检查输入类型,但我想尽可能地处理它.
我有以下代码来处理它.但我想知道是否有任何情况,这一行可以抛出我需要处理的异常.
def foo(any_input):
clean_input = str(any_input) # will this throw any exception or error?
process(clean_input)
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
def foo(input):
if not input.startswith("prefix"):
raise Exception("input should start with prefix!")
process(input)
Run Code Online (Sandbox Code Playgroud)
现在我想对这个功能进行单元测试; 什么时候input
不启动"prefix"
它实际上可以抛出异常.这是我的unittest
代码:
def test_foo_invalud_type(self):
self.assertRaises(Exception, foo, 999)
Run Code Online (Sandbox Code Playgroud)
这个测试代码的问题是:它捕获异常,但异常是'int' object has no attribute 'startswith'
,而不是input should start with prefix!
.测试将通过,但这不是一个好的测试.我如何识别这两个例外?
python ×4
mysql ×2
alter-table ×1
apache-spark ×1
ddl ×1
emr ×1
exception ×1
hadoop ×1
hive ×1
indexing ×1
innodb ×1
json ×1
locking ×1
pip ×1
servlets ×1
string ×1
table-rename ×1
tomcat ×1
unit-testing ×1
war ×1