草庐IT

java - Apache Spark : Update global variables in workers

我很好奇下面的简单代码是否可以在分布式环境中工作(它在独立环境中可以正常工作)?publicclassTestClass{privatestaticdouble[][]testArray=newdouble[4][];publicstaticvoidmain(String[]args){for(inti=0;itestRDD=sc.textFile("testfile",4).mapPartitionsWithIndex(newFunction2,Iterator>(){@OverridepublicIteratorcall(Integerind,Iterators){/*Update

mongodb - 通过 spark-submit 将额外的 jar 传递给 Spark

我将Spark与MongoDB结合使用,因此依赖于mongo-hadoop驱动程序。多亏了对我原来问题的输入,我才开始工作here.我的Spark作业正在运行,但是,我收到了我不理解的警告。当我运行这个命令时$SPARK_HOME/bin/spark-submit--driver-class-path/usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-

scala - Spark 中的广播变量

假设我在集群上运行了以下代码:privatedefmodifyDatasetFormat(data:String,mappings:Array[HashMap[String,Int]]):Array[Tuple2[Tuple3[Int,Int,Int],Int]]={}varmap=newHashMap[String,Int]()map+=("hello"->2)varmappings=newArray[HashMap[String,Int]])(1)mappings(0)=mapvaloriginalDataset=sc.textFile("/home/paourissi/Deskt

hadoop - Apache Spark 如何实现比 Hadoop MapReduce 快 100 倍的速度以及在什么场景下?

ApacheSpark[http://spark.apache.org/]声称在内存方面比ApacheHadoop快100倍。它是如何实现这种惊人的加速的?这种加速仅适用于迭代机器学习算法还是适用于ETL(提取-转换-加载)任务,如JOIN和GROUPBY?Spark的RDD(弹性分布式数据集)和DataFrames都可以提供这种加速吗?Spark社区有针对上述部分场景的benchmark测试结果吗? 最佳答案 Spark在内存中进行数据处理。不会像MapReduce那样有中间文件,所以没有I/O或者可以忽略不计。它并没有在所有情况

hadoop - $SPARK_HOME 中包含的 hive-site.xml 是什么样的?

我是hive的初学者,当我启动spark作业并从hive读取数据时发生了一些事情(找不到表)。我没有在$SPARK_HOME/conf中设置hive-site.xml吗?提交spark作业命令在这里bin/spark-submit--masterlocal[*]--driver-memory8g--executor-memory8g--classcom.ctrip.ml.client.Client/root/GitLab/di-ml-tool/target/di-ml-tool-1.0-SNAPSHOT.jar 最佳答案 在您的Hi

scala - 在 Spark 中重用连接的数据框

我在本地运行HDFS和Spark,并试图了解Spark持久性的工作原理。我的目标是将连接的数据集存储在内存中,然后动态地对其运行查询。但是,我的查询似乎是重做连接而不是简单地扫描持久的预连接数据集。我通过从HDFS加载两个CSV文件创建并保存了两个数据帧,比方说df1和df2。我将两个数据帧的连接保存在内存中:valresult=df1.join(df2,"USERNAME")result.persist()result.count()然后我在结果之上定义了一些操作:valresult2=result.select("FOO","BAR").groupBy("FOO").sum("BA

hadoop - Spark 和 Map-Reduce 一起使用

在运行mapreduce作业的集群上运行Spark的最佳方法是什么?第一个问题是关于数据的共存性。当我启动一个Spark应用程序时,它会分配执行程序,对吗?它如何知道将它们分配到哪里,以便它们与作业所需的数据位于相同的节点中?(一个作业可能需要一个数据,而另一个作业可能需要另一个数据)如果我保持Spark应用程序运行,那么执行程序会从集群中的机器中获取插槽,这是否意味着对于共存,我需要在每个节点上都有一个Spark执行程序?随着执行程序的运行,这意味着我的mapreduce作业的资源变少了,对吧?我可以为每项工作停止和启动Spark应用程序,但这样就失去了让执行程序启动和运行的速度优势

oracle - 使用 Spark 查询 Oracle DB 时出现 "ORA-00933: SQL command not properly ended"错误

我尝试使用Spark数据源API从Oracle数据库加载数据。因为我需要通过查询加载数据,所以我使用了下面的查询,这是我从网上的一些例子中整理出来的:Mapoptions=newHashMap();options.put("driver",MYSQL_DRIVER);options.put("user",MYSQL_USERNAME);options.put("password",MYSQL_PWD);options.put("url",MYSQL_CONNECTION_URL);options.put("dbtable","(selectemp_no,emp_idfromemploy

python - 限制 spark 上下文中的记录数量

我想减少每个reducer的记录数,并将结果变量保留为rdd使用takeSample似乎是显而易见的选择,但是,它返回一个collection而不是SparkContext对象。我想到了这个方法:rdd=rdd.zipWithIndex().filter(lambdax:x[1]但是,这种方法很慢,效率不高。有没有更聪明的方法来获取小样本并保持数据结构为rdd? 最佳答案 如果您想要一个小示例子集并且不能对数据做任何额外的假设,那么take结合parallelize可能是最佳解决方案:sc.parallelize(rdd.take(

scala - Spark - ElasticSearch 索引创建性能太慢

我正在尝试使用Apachespark在Elasticsearch中创建索引(将大量数据写入ES)。我已经完成了一个Scala程序来使用Apachespark创建索引。我必须索引大量数据,这是我的LinkedList中的产品bean。然后。然后我尝试遍历产品bean列表并创建索引。我的代码如下。valconf=newSparkConf().setAppName("ESIndex").setMaster("local[*]")conf.set("es.index.auto.create","true").set("es.nodes","127.0.0.1").set("es.port","