我试图从包含许多子目录的目录中读取文件.数据在S3中,我试图这样做:
val rdd =sc.newAPIHadoopFile(data_loc,
classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
classOf[org.apache.hadoop.io.NullWritable])
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.
感谢帮助
我试图用booth python包装一个C++模板类.我得到了当前包装器的错误.该程序基本上用于创建自定义向量并在python中使用它.
#include <boost/python.hpp>
template <class T> class allocator{
public:
T* allocate(size_t);
void deallocate(T* , size_t);
void construct(T*,T);
void destroy(T*);
};
template <class T> class vec{
typedef T* iterator;
typedef const T* const_iterator;
typedef size_t size_type;
typedef T value_type;
vec(){ create(); }
explicit vec(size_type n, const T& t =T()){ create (n,t);}
vec(const vec& v){ create(v.begin(),v.end());}
vec& operator= (const vec&);
~vec(){uncreate;}
T& operator[](size_type i){return data[i];}
const T& operator[]( size_type i) const { return data[i];}
void push_back(const T& t){
if (avail==limit)
grow(); …Run Code Online (Sandbox Code Playgroud) 我试图将这个json文件读入一个hive表,顶级键即1,2 ..,这里不一致.
{
"1":"{\"time\":1421169633384,\"reading1\":130.875969,\"reading2\":227.138275}",
"2":"{\"time\":1421169646476,\"reading1\":131.240628,\"reading2\":226.810211}",
"position": 0
}
Run Code Online (Sandbox Code Playgroud)
我只需要我的蜂巢表中的时间和读数1,2,因为列忽略位置.我也可以做一个hive查询和spark map-reduce代码的组合.感谢您的帮助.
更新,这是我正在尝试的
val hqlContext = new HiveContext(sc)
val rdd = sc.textFile(data_loc)
val json_rdd = hqlContext.jsonRDD(rdd)
json_rdd.registerTempTable("table123")
println(json_rdd.printSchema())
hqlContext.sql("SELECT json_val from table123 lateral view explode_map( json_map(*, 'int,string')) x as json_key, json_val ").foreach(println)
Run Code Online (Sandbox Code Playgroud)
它会引发以下错误:
Exception in thread "main" org.apache.spark.sql.hive.HiveQl$ParseException: Failed to parse: SELECT json_val from temp_hum_table lateral view explode_map( json_map(*, 'int,string')) x as json_key, json_val
at org.apache.spark.sql.hive.HiveQl$.createPlan(HiveQl.scala:239)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:50)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:49)
at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:136)
at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:135)
at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242)
at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242)
at scala.util.parsing.combinator.Parsers$$anon$3.apply(Parsers.scala:222)
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个C++程序来删除共享内存段.我知道可以从cmd提示符使用
ipcs -m | awk '{ print $2 }' | xargs ipcrm -m
但我正在尝试使用C++来创建一个共享内存垃圾收集器.
我们的想法是删除未附加到任何进程(nattach == 0)或status == NULL的共享内存段