小编apu*_*dan的帖子

适用于大型数据集的TFIDF

我有一个包含大约800万条新闻文章的语料库,我需要将它们的TFIDF表示为稀疏矩阵.我已经能够使用scikit-learn来获得相对较少数量的样本,但我相信它不能用于如此庞大的数据集,因为它首先将输入矩阵加载到内存中,这是一个昂贵的过程.

有谁知道,提取大型数据集的TFIDF向量的最佳方法是什么?

python lucene nlp tf-idf scikit-learn

32
推荐指数
3
解决办法
2万
查看次数

Spark Swift集成镶木地板

我已经使用Spark 1.3.0并使用它将Parquet文件写入Openstack Swift Object store一段时间了.我使用大约12个分区的镶木地板文件,在Swift上将拼花文件分成几个部分.编写文件没有问题.但是当我尝试通过Spark阅读它时,我得到了这个错误:

     ERROR Executor: Exception in task 9.0 in stage 2.0 (TID 22)
java.io.EOFException
    at java.io.DataInputStream.readFully(DataInputStream.java:197)
    at java.io.DataInputStream.readFully(DataInputStream.java:169)
    at parquet.hadoop.ParquetFileReader$ConsecutiveChunkList.readAll(ParquetFileReader.java:730)
    at parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:490)
    at parquet.hadoop.InternalParquetRecordReader.checkRead(InternalParquetRecordReader.java:116)
    at parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:193)
    at parquet.hadoop.ParquetRecordReader.nextKeyValue(ParquetRecordReader.java:204)
    at org.apache.spark.rdd.NewHadoopRDD$$anon$1.hasNext(NewHadoopRDD.scala:143)
    at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:39)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
    at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:308)
    at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
    at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:210)
    at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:63)
    at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:68)
    at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
    at org.apache.spark.scheduler.Task.run(Task.scala:64)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
Run Code Online (Sandbox Code Playgroud)

我正在通过https://github.com/openstack/sahara-extra/tree/master/hadoop-swiftfs使用Hadoop-Swift补丁,它使Hadoop能够将Swift识别为文件系统.

注1:如果将文件从Swift下载到本地文件系统,Spark可以完美地读取文件.

注2:我也注意到如果我不对镶木地板文件进行分区,那么读取是完美的.

谁使用Spark,Openstack Swift?

hadoop openstack-swift hdfs apache-spark parquet

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