草庐IT

hadoop - yarn 模式下的 Spark RDD map 不允许访问变量?

我在mapr集群上安装了全新的spark1.2.1,在测试它时我发现它在本地模式下运行良好,但在yarn模式下它似乎无法访问变量,如果广播也是如此。准确的说是下面的测试代码importorg.apache.spark.SparkContextimportorg.apache.spark.SparkContext._importorg.apache.spark.SparkConfobjectJustSparkextendsApp{valconf=neworg.apache.spark.SparkConf().setAppName("SimpleApplication")valsc=new

mongodb - RDD 仅部分写入 mongo

我正在使用Spark1.3.1并尝试使用mongo-hadoopconnector将RDD保存到mongodb版本1.3.2和mongo-java-driver版本3.0.1。当我在独立集群上运行下面的应用程序时,驱动程序被标记为失败。这是我用来重现问题的代码,importorg.apache.spark.SparkConfimportorg.apache.spark.SparkContextimportorg.apache.spark.SparkContext._importorg.apache.hadoop.conf.Configurationimportorg.apache.sp

hadoop - Spark RDD 分区与 Hadoop 拆分

我很难理解RDD分区和HDFS输入拆分之间的区别。因此,基本上当您提交Spark应用程序时:当Spark应用程序想要从HDFS读取时,HDFS上的该文件将具有输入拆分(假设每个64MB,并且这些输入拆分中的每一个都存在于不同的数据节点上)。现在假设Spark应用程序想要使用(sc.textFile(PATH_IN_HDFS))从HDFS加载该文件。该文件大约256MB,有4个输入拆分,其中2个拆分在数据节点1上,另外2个拆分在数据节点2上。现在,当Spark将这256MB加载到它的RDD抽象中时,它是否会将每个输入拆分(64mb)加载到4个独立的RDD中(你将在数据节点1和其他两个RD

scala - 如何在 PySpark 中压缩两个 RDD?

我一直在尝试合并averagePoints1和kpoints2下面的两个Rdd。一直报错ValueError:CannotdeserializeRDDwithdifferentnumberofitemsinpair:(2,1)而且我尝试了很多东西,但我不能这两个Rdds是相同的,具有相同数量的分区。我的下一步是在两个列表上应用欧几里德距离函数来衡量差异,因此如果有人知道如何解决此错误或有不同的方法我可以遵循,我将非常感激。提前致谢averagePoints1=averagePoints.map(lambdax:x[1])averagePoints1.collect()Out[15]:[

scala - Spark-rdd 操作数据

我有如下示例数据:UserId,ProductId,Category,Action1,111,Electronics,Browse2,112,Fashion,Click3,113,Kids,AddtoCart4,114,Food,Purchase5,115,Books,Logout6,114,Food,Click7,113,Kids,AddtoCart8,115,Books,Purchase9,111,Electronics,Click10,112,Fashion,Purchase3,112,Fashion,Click我需要生成对“时尚”类别或“电子产品”类别感兴趣但对这两个类别都不感

scala - 当您在 RDD 之外的 Spark 中执行 Java 数据操作时会发生什么

我正在使用Spark从hdfs读取一个csv文件。它进入一个FSDataInputStream对象。我不能使用textfile()方法,因为它按换行符拆分csv文件,而我正在读取文本字段内有换行符的csv文件。来自sourcefourge的Opencsv处理单元格内的换行,这是一个不错的项目,但它接受Reader作为输入。我需要将它转换为字符串,以便我可以将它作为StringReader传递给opencsv。因此,HDFSFile->FSdataINputStream->String->StringReader->一个opencsv字符串列表。下面是代码...importjava.io

apache-spark - 简单的 rdd.count() 操作的 java.lang.OutOfMemoryError

我在对hdfs上的大约55个文件和总共1B条记录进行简单计数操作时遇到了很多麻烦。spark-shell和PySpark都因OOM错误而失败。我正在使用yarn、MapR、Spark1.3.1和hdfs2.4.1。(它在本地模式下也失败了。)我尝试遵循调整和配置建议,向执行程序投入越来越多的内存。我的配置是conf=(SparkConf().setMaster("yarn-client").setAppName("pyspark-testing").set("spark.executor.memory","6g").set("spark.driver.memory","6g").set

hadoop - 如何从 pyspark rdd 或分区确定原始 s3 输入文件名

我正在使用pyspark流式处理来自S3的ETL输入文件。我需要能够建立所有原始输入文件的审计线索在s3://上,我的Parquet输出在hdfs://上结束。给定一个dstream、rdd,甚至是一个特定的rdd分区,是否有可能确定s3中输入数据的原始文件名?目前我知道的唯一方法是采取rdd.toDebugString()并尝试解析它。然而,这感觉真的很hacky并且不在某些情况下工作。例如,解析调试输出对我的批处理模式导入不起作用我也在做(使用sc.TextFile("s3://...foo/*")样式的glob)。有没有人有确定原始文件名的明智方法?似乎其他一些spark用户过去

hadoop - Spark RDD 抛出 NullPointerException

当我尝试从配置单元表中获取一些产品并在spark中处理/应用rools时,我遇到了问题。//functionwhichreturnproductsfromHivetabledefgetProductsList(hiveContext:org.apache.spark.sql.hive.HiveContext):scala.collection.mutable.MutableList[Product]={valproducts=scala.collection.mutable.MutableList[Product]()valresults=hiveContext.sql("select

java - Scala - 如何返回这种 RDD 类型

我尝试使返回RDD的方法引用this,但失败了,因为返回需要参数。根据API(Java),这是我的代码:defHBaseToRDD(_HBaseConfiguration:HBaseConfiguration,_sc:SparkContext):RDD[(K,V)]={valHBaseRDD=_sc.newAPIHadoopRDD(_HBaseConfiguration,classOf[TableInputFormat],classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],classOf[org.apache.hadoo