小编ven*_*tan的帖子

使用来自s3或本地文件系统的spark从子目录递归读取文件

我试图从包含许多子目录的目录中读取文件.数据在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)

这似乎不起作用.

感谢帮助

hadoop scala apache-spark

8
推荐指数
1
解决办法
1万
查看次数

使用boost python包装C++模板类

我试图用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)

c++ templates boost vector wrapper

7
推荐指数
1
解决办法
4771
查看次数

用hive/sql和spark读取json键值

我试图将这个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)

hadoop hive apache-spark apache-spark-sql

5
推荐指数
1
解决办法
2467
查看次数

使用C++程序删除unix共享内存段

我正在尝试编写一个C++程序来删除共享内存段.我知道可以从cmd提示符使用

ipcs -m | awk '{ print $2 }' | xargs ipcrm -m

但我正在尝试使用C++来创建一个共享内存垃圾收集器.

我们的想法是删除未附加到任何进程(nattach == 0)或status == NULL的共享内存段

c++ unix shared-memory ipcs inter-process-communicat

1
推荐指数
1
解决办法
3989
查看次数