首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将clojure向量转换为flambo sql行

将clojure向量转换为flambo sql行
EN

Stack Overflow用户
提问于 2015-07-30 10:07:04
回答 1查看 506关注 0票数 1

我正在开发一个函数,将向量转换为sql行,以进一步将其转换为数据帧,并使用Apache中的SQLcontext将其保存到表中。我正在克洛尔开发,一路上迷路了。因此,我想实施这个解决方案:

  1. 对于每个rdd (向量),将其转换为行
  2. 将行转换为数据帧
  3. 将数据帧保存到表中
  4. 使用sqlContext查询表中的特定信息
  5. 以及如何将查询结果再转换为RDD,以便进一步分析。 (defn ecom let [rdd-fields (-> (:rdd @transformed-rdd) (f/map #(sql/row->vec %)) f/collect)] (clojure.pprint/pprint rdd-fields))

我正在使用flambov0.60API函数来抽象Apache火花函数,我也欢迎关于如何解决这个问题的任何建议。谢谢

下面是Flambo行-> vec文档的链接:

Flambo文件:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-30 12:45:39

我想您已经有了spark-context (sc)和sql-context (sql-ctx)。首先,让我们导入我们需要的所有东西:

代码语言:javascript
复制
(import org.apache.spark.sql.RowFactory)
(import org.apache.spark.sql.types.StructType)
(import org.apache.spark.sql.types.StructField)
(import org.apache.spark.sql.types.Metadata)
(import org.apache.spark.sql.types.DataTypes)
  1. 对于每个rdd (向量),将其转换为行 ;;向量到行转换(defn >行V);示例数据(def行(-> (f/parallelize ["foo“1]) (f/map vec->row ))
  2. 将行转换为数据帧 ;;定义模式(def模式(StructType )。(插入数组StructField (StructField. )"k“(数据类型/StringType) false (元数据/空)) (StructField。( "v“(数据类型/IntegerType) false (元数据/空)) ;;创建数据框架(def df (.createDataFrame sql-ctx行模式);查看它是否有效(.show df)
  3. 将数据帧保存到表中 (.registerTempTable df "df")
  4. 使用sqlContext查询表中的特定信息 (def df-键(.sql sql-ctx“从df选择上(K)作为k”) ;;检查结果(.show df-键)
  5. 以及如何将查询结果再转换为RDD,以便进一步分析。 (.toJavaRDD df-键) 或者如果你想要向量: (f/map (.toJavaRDD df-键) sql/row->vec)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31720854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档