小编KBA*_*KBA的帖子

将行列表保存到pyspark中的Hive表

我有一个pyspark应用程序.我将一个hive表复制到了我的hdfs目录,在python中我sqlContext.sql对这个表进行了查询.现在这个变量是我调用的数据帧rows.我需要随机改组rows,所以我不得不将它们转换为行列表rows_list = rows.collect().那么我就把shuffle(rows_list)那些名单洗牌了.我拿了我需要的随机行数x:

for r in range(x): allrows2add.append(rows_list[r]) 现在我想将allrows2add保存为hive表,或者附加一个现有的hive表(以更容易的方式).问题是我不能这样做:

all_df = sc.parallelize(allrows2add).toDF() 不能这样做,架构无法推断 ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling

没有放入整个架构.模式rows有117列,所以我不想输出它们.有没有办法提取模式,rows以帮助我使allrows2add成为一个数据帧或以某种方式保存为一个蜂巢表?我可以做, rows.printSchema()但不知道如何将其作为一个传递的变量的模式格式,toDF()而不必解析所有的文本

谢谢

添加循环信息

#Table is a List of Rows from small Hive table I loaded using
#query = "SELECT * FROM Table"
#Table = sqlContext.sql(query).collect()

for i in range(len(Table)):

    rows …
Run Code Online (Sandbox Code Playgroud)

python hive pyspark pyspark-sql

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

tf-idf有点大(65k)的文本文件

我想用scikit-learn尝试tfidf(或者nltk或者对其他建议持开放态度).我拥有的数据是相当多的讨论论坛帖子(~65k)我们已经抓取并存储在mongoDB中.每个帖子都有帖子标题,帖子的日期和时间,帖子消息的文本(或者re:如果对现有帖子的回复),用户名,消息ID以及是否是子帖或父帖(在帖子中) ,你有原始帖子,然后回复此操作,或嵌套回复,树).

我想每个帖子,将是一个单独的文档,类似于20newsgroups,每个文档将有我在顶部提到的字段,并在底部的消息发布的文本,我将从mongo中提取并写入到每个文本文件所需的格式.

为了将数据加载到scikit,我知道的:
http://scikit-learn.org/dev/modules/generated/sklearn.datasets.load_files.html (但我的数据未分类) 的http:// scikit学习. org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html - 对于输入,我知道我会使用文件名,但因为我会有大量的文件(每个帖子),有没有办法要么从文本文件中读取文件名?或者是否有某些示例实现有人可以指向我?

此外,任何关于为每个这些讨论论坛帖子构建文件名的建议,以便稍后识别我何时获得tfidf向量和余弦相似性数组

谢谢

nlp nltk tf-idf scikit-learn

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

标签 统计

hive ×1

nlp ×1

nltk ×1

pyspark ×1

pyspark-sql ×1

python ×1

scikit-learn ×1

tf-idf ×1