Anaconda python发行版非常方便部署科学计算环境(SCE)和切换python版本.默认情况下,安装将python定位到~/anaconda
,SCE只能使本地用户受益.
但我需要的是提供一个完整的SCE机智Anaconda同时屏蔽系统范围的python版本,因为我的集群运行Spark并为我们团队中的多个用户提供服务.目前的Anaconda版本有可能吗?
夏鸣
我已经在这个问题上工作了两天,仍然没有找到方法.
问题:我们通过最新的CDH 5安装的Spark总是抱怨丢失LzoCodec类,即使我在cloudera管理器中通过Parcels安装HADOOP_LZO也是如此.我们在CDH 5.0.0-1.cdh5.0.0.p0.47上运行MR1.
尝试修复:还添加了有关"使用LZO包裹 "的官方CDH文档中的配置,但问题仍然存在.
大多数谷歌帖子都提供了类似的建议.我还怀疑火花正在试图对抗那些未在那里激活的YARN; 但我无法在CMF或其他帖子中找到有关此主题的配置.
如果您知道如何处理它,请给我一些帮助.
流式数据处理中dplyr包的流畅性使我感到非常震惊.最近,我急于为每个组ID生成一个新的数据帧,并将这些小数据帧组合成一个最终的较大数据帧.玩具示例:
input.data.frame %>%
group_by(gid) %>%
{some operation to generate a new data frame for each group} ## FAILED!!!!
Run Code Online (Sandbox Code Playgroud)
在dplyr中,mutate
向每个组添加新列并为每个组summarise
生成摘要的功能都无法满足我的要求.(我错过了什么?)
或者,使用ddply
plyr包,之前的dplyr交互,我可以通过它
ddply(input.data.frame, .(gid), function(x) {
some operation to generate a new data frame for each group
}
Run Code Online (Sandbox Code Playgroud)
但是当我加载plyr包时,dplyr中的一些功能会被可用性掩盖.
在mac os x上使用memchr()时遇到溢出问题.
这是我的测试代码:
#include <stdio.h>
#include <stdlib.h>
int main(void){
char *content="http\r\nUser";
int content_size = strlen(content);
char *contmem = malloc(content_size+1);
memset(contmem, '\0', content_size+1);
memcpy(contmem, content, content_size);
printf("%c\n", *(content+content_size));
printf("%c\n", *(contmem+content_size));
char *t = memchr(content, 't', content_size);
printf("%c\n", *t);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它在linux上正常工作,即我的fedora 16,并打印正确的t值.但是当我在Mac上运行相同的代码时,会发生分段错误!
用gdb调试后,我说的是:
(gdb) print t
$7 = 0xf4b <Address 0xf4b out of bounds>
Run Code Online (Sandbox Code Playgroud)
然后我尝试重写此测试文件中的memchr函数:
static char*
memchr(const char *data, int c, unsigned long len){
char *tp = data;
unsigned long i;
for( i = 0; i<len; i++){
if((int)*tp …
Run Code Online (Sandbox Code Playgroud) 我的所有程序都使用hadoop的新MR1接口(org.apache.hadoop.mapreduce)编写,所以我也想使用avro的新的org.apache.avro.mapreduce.但它对我不起作用.
该程序接收avro数据的输入并输出相同的数据.我的程序背后的主要思想是将hadoop的Mapper和Reducer子类化为avro包装的键/值.这是我的工作驱动程序块:
AvroJob.setInputKeySchema(job, NetflowRecord.getClassSchema());
AvroJob.setOutputKeySchema(job, NetflowRecord.getClassSchema());
job.setMapperClass(MyAvroMap.class);
job.setReducerClass(MyAvroReduce.class);
job.setInputFormatClass(AvroKeyInputFormat.class);
job.setOutputFormatClass(AvroKeyOutputFormat.class);
job.setMapOutputKeyClass(AvroKey.class);
job.setMapOutputValueClass(AvroValue.class);
job.setOutputKeyClass(AvroKey.class);
job.setOutputValueClass(NullWritable.class);
Run Code Online (Sandbox Code Playgroud)
MyAvroMap和MyAvroReduce子类的定义分别是
public static class MyAvroMap extends Mapper<AvroKey<NetflowRecord>, NullWritable,
AvroKey<CharSequence>, AvroValue<NetflowRecord>>{ ... }
public static class MyAvroReduce extends Reducer<AvroKey<CharSequence>, AvroValue<NetflowRecord>,
AvroKey<NetflowRecord>, NullWritable>{ ... }
Run Code Online (Sandbox Code Playgroud)
有效的NetflowRecord是我的avro记录类.我得到了例外
java.lang.ClassCastException: class org.apache.avro.hadoop.io.AvroKey
Run Code Online (Sandbox Code Playgroud)
通过阅读hadoop和avro的源代码,我发现JobConf抛出异常以确保map键是WritableComparable的子类,就像这样(hadoop1.2.1,line759)
WritableComparator.get(getMapOutputKeyClass().asSubclass(WritableComparable.class));
Run Code Online (Sandbox Code Playgroud)
但avro表明,AvroKey和AvroValue只是一个简单的包装器,没有子类化hadoop的Writable*接口.
我相信,即使没有测试,我也可以使用旧的mapred接口,但它不是我想要的.你可以给我一些关于使用纯org.apache.avro.mapreduce接口进行编程的例子或解释吗?
此致
贾敏
我是NLP域的新手,但我目前的研究需要从URL地址进行一些文本解析(或称为关键字提取),例如假URL,
http://ads.goole.com/appid/heads
Run Code Online (Sandbox Code Playgroud)
我的解析有两个约束,
第一个"广告"和最后一个"头"应该是不同的,因为"头部"中的"广告"意味着更多的后缀而不是广告.
"appid"可以解析为两部分; 这就是'app'和'id',它们都在互联网中具有语义含义.
我尝试过Stanford NLP工具包和Google搜索引擎.前者尝试用语法对每个单词进行分类,这意味着我的期望.谷歌引擎显示更多关于"appid"的智能,它给了我关于"app id"的建议.
我不能在Google搜索中查看搜索历史记录的引用,因此它给了我"app id",因为有很多人搜索过这些单词.我可以获得一些离线行方法来执行类似的解析吗?
更新:请跳过正则表达式建议,因为即使是简单的URL,也可能有未知数量的单词组合,例如"appid".
谢谢,
贾敏
关于三元条件算子的一个小问题让我困惑了很长时间.
例如代码(python 2.7):
>>> x, y = None, 3
>>> x, y
(None, 3)
>>> (x == None and x or y)
3
>>> (x != None and x or y)
3
>>> (x if x == None else y)
Run Code Online (Sandbox Code Playgroud)
第三行和第四行是旧式条件运算符.两者都给出了相同的结果.显然,前者采取"错误"的结果.根据python,也许没有错.但是在程序中犯错并且没有明确的错误很容易.
根据"Core python programming"(Wesley J. Chun)一书,第五行是2.5版的新版本,它的回归是正确的.
有人知道这个吗?
python ×2
anaconda ×1
apache-spark ×1
avro ×1
c ×1
cloudera-cdh ×1
dplyr ×1
hadoop ×1
hadoop-lzo ×1
macos ×1
mapreduce ×1
nlp ×1
overflow ×1
r ×1
web ×1