草庐IT

hadoop - 如何将 spark rdd 保存到 avro 文件

我正在尝试将rdd保存到avro格式的文件中。这是我的代码的样子:valoutput=s"/test/avro/${date.toString(dayFormat)}"rmr(output)//deleteingthepathrdd.coalesce(64).saveAsNewAPIHadoopFile(output,classOf[org.apache.hadoop.io.NullWritable],classOf[PageViewEvent],classOf[AvroKeyValueOutputFormat[org.apache.hadoop.io.NullWritable,Pag

web-services - 将 Spark RDD 上传到 REST webservice POST 方法

坦率地说,我不确定这个功能是否存在?抱歉我的要求是每天将spark分析数据发送到文件服务器,文件服务器支持通过SFTP和RESTWebservicepost调用进行文件传输。最初的想法是将SparkRDD保存到HDFS,通过SFTP传输到文件服务器。我想知道是否可以通过从spark驱动程序类调用REST服务直接上传RDD而无需保存到HDFS。数据大小小于2MB抱歉我的英语不好! 最佳答案 Spark没有特定的方法来做到这一点。对于这种数据大小,通过HDFS或其他类型的存储是不值得的。您可以在驱动程序的内存中收集该数据并直接发送。对于

scala - 是否可以在 HDFS 上持久化 RDD?

我知道RDD可以持久化/缓存在内存、磁盘或两者上,但是否也可以将其持久化到HDFS上。我面临的问题是我的集群上的内存和磁盘空间太少,而我的HDFS空间很大。 最佳答案 RDD持久化只能在工作机器(内存和磁盘)内进行。一些持久性级别在集群中的其他工作机器中复制RDD。从今天开始,为了在HDFS中持久化RDD/DataFrame,我们只能使用写入API。写入HDFS://WritingDataFramedf.write.save("hdfs://namenode_host:port/file/path");//WritingRDDrdd

hadoop - 将 rdd 从 spark 写入 Elastic Search 失败

我正在尝试在版本2.4.0上将一对rdd写入ElasticCloud上的ElasticSearch。我正在使用elasticsearch-spark_2.10-2.4.0插件写入ES。这是我用来写入ES的代码:defpredict_imgs(r):importjsonout_d={}out_d["pid"]=r["pid"]out_d["other_stuff"]=r["other_stuff"]return(r["pid"],json.dumps(out_d))res2=res1.map(predict_imgs)es_write_conf={"es.nodes":image_es,

python - 如果多次使用 RDD 是否需要缓存?

比方说,我们有以下代码。x=sc.textFile(...)y=x.map(...)z=x.map(...)有必要在这里缓存x吗?缓存x不会让spark读取输入文件两次吗? 最佳答案 这些东西没有必要让Spark读取输入两次。列出所有可能的场景:示例1:文件一次都没有读取x=sc.textFile(...)#creationofRDDy=x.map(...)#TransformationofRDDz=x.map(...)#TransformationofRDD在这种情况下,它不会执行任何操作,因为转换时没有任何操作。例子2:文件读取

java - 使用带迭代器的 mapPartition 保存 spark RDD

我有一些中间数据需要存储在HDFS和本地。我正在使用Spark1.6。在作为中间形式的HDFS中,我在/output/testDummy/part-00000和/output/testDummy/part-00001中获取数据。我想使用Java/Scala将这些分区保存在本地,这样我就可以将它们保存为/users/home/indexes/index.nt(通过在本地合并)或/users/home/indexes/index-0000.nt和/home/indexes/index-0001.nt分开。这是我的代码:注意:testDummy与test相同,输出有两个分区。我想将它们单独存

scala - 使用 Spark hadoop API 创建 RDD 以访问 Cassandra DB

我正在运行一个节点cassandra2.0.3和ApacheSpark2.0.3我创建了一个scala程序来使用SparkhadoopAPI创建RDD以访问CassandraDB。还应该在bashrc中为spaark设置哪些环境变量,因为我在spark-env.sh中使用以下配置exportSPARK_MASTER_IP="10.0.3.15"exportSPARK_MASTER_PORT="7077"exportSCALA_HOME="/home/Desktop/CD/scala-2.9.3"exportSPARK_WORKER_MEMORY=1gexportSPARK_WORKER

hadoop - 如何在 RDD [(String, Int)] 上保存 AsTextFile 时删除记录周围的括号?

这个问题在这里已经有了答案:HowtoremoveparenthesesaroundrecordswhensaveAsTextFileonRDD[(String,Int)]?(6个答案)关闭5年前。如何从以下spark作业的输出中删除括号“(”和“)”?当我尝试使用PigScript读取spark输出时,它产生了一个问题。我的代码:scala>valwords=Array("HI","HOW","ARE")words:Array[String]=Array(HI,HOW,ARE)scala>valwordsRDD=sc.parallelize(words)wordsRDD:org.ap

java - 有没有办法改变 Spark 中 RDD 的复制因子?

据我了解,集群中的RDD中的数据存在多份副本,这样当某个节点出现故障时,程序可以恢复。然而,在失败的可能性可以忽略不计的情况下,在RDD中拥有多个数据副本在内存方面的成本很高。那么,我的问题是,Spark中是否有一个参数可以用来降低RDD的复制因子? 最佳答案 首先,请注意Spark不会自动缓存所有RDD,这仅仅是因为应用程序可能会创建许多RDD,并且并非所有这些都将被重用。您必须对它们调用.persist()或.cache()。你可以设置你想要持久化一个RDD的存储级别myRDD.persist(StorageLevel.MEMO

hadoop - Spark RDD - 分区总是在 RAM 中吗?

我们都知道Spark在内存中进行计算。我只是对以下内容感到好奇。如果我从HDFS在我的pySparkshell中创建10个RDD,这是否意味着所有这10个RDD的数据都将驻留在SparkWorkers内存中?如果不删除RDD,它会永远存在内存中吗?如果我的数据集(文件)大小超过可用RAM大小,数据将存储在哪里? 最佳答案 IfIcreate10RDDinmypySparkshellfromHDFS,doesitmeanallthese10RDDdatawillresideonSparkMemory?是的,所有10个RDD数据都将散布