如何通过选项确保变量不为空-z
?
errorstatus="notnull"
if [ !-z $errorstatus ]
then
echo "string is not null"
fi
Run Code Online (Sandbox Code Playgroud)
它返回错误:
./test: line 2: [: !-z: unary operator expected
Run Code Online (Sandbox Code Playgroud) (在BASH中)我希望子shell使用非STDOUT非STDERR文件描述符将一些数据传递回父shell.我怎样才能做到这一点?最终我希望将数据保存到父shell的某个变量中.
(
# The following two lines show the behavior of the subshell.
# We cannot change them.
echo "This should go to STDOUT"
echo "This is the data I want to pass to the parent shell" >&3
)
#...
data_from_subshell=... # Somehow assign the value of &3 of the
# subshell to this variable
Run Code Online (Sandbox Code Playgroud)
编辑:子shell运行一个写入STDOUT和&3的黑盒程序.
据我所读,我可以总结一下,
if/elseif
(?)快考虑一下我有300多个开关盒的情况.我知道if/elseif
在这个场景中会是一团糟.
但我想知道switch
案件在这样的场景中会如何表现?
if/elseif
- switch
除了实际编写代码和使用分析器之外的比较?我尝试.c
使用gcc 4.8.1
-S
switch来编译带有switch case 的小文件,它看起来像是一个跳转表.我从哪里开始?if/elseif
在这种情况下使用是更好/更糟我主要对C/C++的具体细节感兴趣
我的桌子有50左右的记录,
在表中我有列调用USERNAME
,但一些用户名前导和尾随有空格,
所以由于空白,我没有得到确切的订单结果,
那么告诉我如何在SELECT
查询中使用trim ,
谢谢
我在分析日志文件的数据管道中运行EMR活动,当我的管道发生故障时,我收到以下错误:
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://10.208.42.127:9000/home/hadoop/temp-output-s3copy already exists
at org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:121)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:944)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:905)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1132)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:905)
at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:879)
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1316)
at com.valtira.datapipeline.stream.CloudFrontStreamLogProcessors.main(CloudFrontStreamLogProcessors.java:216)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:187)
Run Code Online (Sandbox Code Playgroud)
如何从Hadoop中删除该文件夹?
我正在使用新的Hadoop API并寻找一种方法将一些参数(少量字符串)传递给映射器.
我怎样才能做到这一点?
JobConf job = (JobConf)getConf();
job.set("NumberOfDocuments", args[0]);
Run Code Online (Sandbox Code Playgroud)
这里," NumberOfDocuments
"是参数的名称,其值是args[0]
从命令行参数" " 读取的.设置此参数后,可以在reducer或mapper中检索其值,如下所示:
private static Long N;
public void configure(JobConf job) {
N = Long.parseLong(job.get("NumberOfDocuments"));
}
Run Code Online (Sandbox Code Playgroud)
注意,棘手的部分是你不能设置这样的参数:
Configuration con = new Configuration();
con.set("NumberOfDocuments", args[0]);
Run Code Online (Sandbox Code Playgroud) 假设我有一个导致分段错误的代码.
char * ptr = NULL;
*ptr = "hello"; /* this will cause a segmentation fault */
Run Code Online (Sandbox Code Playgroud)
如何在运行时打印,内存中发生分段错误的地址,以及分段错误的原因(访问禁止的内存区域或其他内容).
我读到了关于核心转储文件,但我不确定它是否是正确的解决方案.
我怎样才能做到这一点?
PS,我知道我可以通过使用gdb或其他调试器实现这一点,但目的是通过使用代码和仅代码来实现.
我有几个关于oozie 2.3共享库的问题:
目前,我在coordinator.properties中定义了共享库:
oozie.use.system.libpath=true
oozie.libpath=<hdfs_path>
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
共享库被复制到其他数据节点时,有多少数据节点将获得共享库?
共享库是根据协调器作业中的wf数复制到其他数据节点还是每个协调器作业只复制一次?
我有一个Hive查询
SELECT Year, Month, Day, Hours, Minutes,
cast((cast(Seconds as int)/15) as int)*15
AS secondMod, Count(*) AS PerCount FROM LoggerTable
GROUP BY Year, Month, Day, Hours, Minutes, secondMod
ORDER BY PerCount;
Run Code Online (Sandbox Code Playgroud)
上述查询失败并显示错误
FAILED:语义分析出错:第1行:175无效表别名或列引用secondMod
'LoggerTable'是一个包含所有字符串类型列的Hive表.
针对此问题的任何解决方法?