jjzjj

java - 从另一个应用程序启动它时如何正确等待 apache spark 启动器作业?

当我等待我的sparkapache工作完成但没有成功时,我试图避免使用“while(true)”解决方案。我有一个spark应用程序,它假设要处理一些数据并将结果放入数据库,我确实从我的spring服务调用它,并想等到工作完成。例子:带有方法的启动器:@Overridepublicvoidrun(UUIDdocId,Stringquery)throwsException{launcher.addAppArgs(docId.toString(),query);SparkAppHandlesparkAppHandle=launcher.startApplication();sparkApp

java - Spark Driver 内存和 Executor 内存

我是Spark的初学者,我正在运行我的应用程序以从文本文件中读取14KB数据,进行一些转换和操作(收集、收集AsMap)并将数据保存到数据库我在我的macbook上本地运行它,它有16G内存,8个逻辑核心。Java最大堆设置为12G。这是我用来运行应用程序的命令。bin/spark-submit--classcom.myapp.application--masterlocal[*]--executor-memory2G--driver-memory4G/jars/application.jar我收到以下警告2017-01-1316:57:31.579[Executortasklaunc

java - Apache Spark——使用 spark-submit 抛出 NoSuchMethodError

要将Spark应用程序提交到集群,他们的文档说明:Todothis,createanassemblyjar(or“uber”jar)containingyourcodeanditsdependencies.BothsbtandMavenhaveassemblyplugins.Whencreatingassemblyjars,listSparkandHadoopasprovideddependencies;theseneednotbebundledsincetheyareprovidedbytheclustermanageratruntime.--http://spark.apache.

Java & Spark : add unique incremental id to dataset

使用Spark和Java,我试图向现有的具有n列的数据集[行]添加一个整数标识列。我使用zipWithUniqueId()或zipWithIndex成功添加了一个id,甚至使用了monotonically_increasing_id()。但没有一个能令人满意。示例:我有一个包含195行的数据集。当我使用这三种方法中的一种时,我得到一些像1584156487或12036这样的ID。另外,这些ID不是连续的。我需要/想要的非常简单:一个Integerid列,其值从1到dataset.count()foreach行,其中id=1后跟id=2,等等。我如何在Java/Spark中做到这一点?

java - 如何使用 Java 在 SPARK 中使用映射函数

我尝试在spark中读取一个csv文件,我想拆分以逗号分隔的行,以便我有一个带有二维数组的RDD。我是Spark的新手。我试着这样做:publicclassSimpleApp{publicstaticvoidmain(String[]args)throwsException{Stringmaster="local[2]";StringcsvInput="/home/userName/Downloads/countrylist.csv";StringcsvOutput="/home/userName/Downloads/countrylist";JavaSparkContextsc=ne

java - 如何在 Apache Spark 中为两个具有不同结构的 DataFrame 实现 NOT IN

我在我的Java应用程序中使用ApacheSpark。我有两个DataFrame小号:df1和df2.df1包含Row与email,firstName和lastName.df2包含Row与email.我想创建一个DataFrame:df3包含df1中的所有行,df2中不存在哪个电子邮件.有没有办法用ApacheSpark做到这一点?我试图创建JavaRDD来自df1和df2通过类型转换它们toJavaRDD()和过滤df1包含所有电子邮件,然后使用subtract,但我不知道如何映射新的JavaRDD至ds1得到DataFrame.基本上我需要df1中的所有行谁的邮箱不在df2.Dat

java - Spark 应用程序 - Java.lang.OutOfMemoryError : Java heap space

我用的是SparkStandalone单机,128G内存,32核。以下是我认为与我的问题相关的设置:spark.storage.memoryFraction0.35spark.default.parallelism50spark.sql.shuffle.partitions50我有一个Spark应用程序,其中有一个用于1000个设备的循环。对于每个循环(设备),它都会准备特征向量,然后调用MLLib的k-Means。在循环的第25到30次迭代(处理第25到第30个设备)时,它遇到了“Java.lang.OutOfMemoryError:Java堆空间”的错误。我尝试将memoryFra

java - jsontostructs 到 spark 结构化流中的行

我正在使用Spark2.2,我正在尝试从Kafka读取JSON消息,将它们转换为DataFrame并将它们作为Row:spark.readStream().format("kafka").option("kafka.bootstrap.servers","localhost:9092").option("subscribe","topic").load().select(col("value").cast(StringType).as("col")).writeStream().format("console").start();有了这个我可以实现:+-----------------

java - Spark : driver/worker configuration. 驱动程序是否在主节点上运行?

我在AWS上启动一个spark集群,有一个master和60个核心:下面是启动的命令,基本上每个核心2个executor,一共120个executor:spark-submit--deploy-modecluster--masteryarn-cluster--driver-memory180g--driver-cores26--executor-memory90g--executor-cores13--num-executors120然而,在作业跟踪器中,只有119个执行程序:我认为应该有1个驱动程序+120个工作执行程序。但是,我看到的是119个executor,其中包括1个driv

java - Spark SQL 失败,因为 "Constant pool has grown past JVM limit of 0xFFFF"

我在EMR4.6.0+Spark1.6.1上运行这段代码:valsqlContext=SQLContext.getOrCreate(sc)valinputRDD=sqlContext.read.json(input)try{inputRDD.filter("`first_field`isnotnullOR`second_field`isnotnull").toJSON.coalesce(10).saveAsTextFile(output)logger.info("DONE!")}catch{casee:Throwable=>logger.error("ERROR"+e.getMessa