Tag: apache spark

SparkContext setLocalProperties

作为这个问题的延续, 您能否告诉我可以从SparkContext.setLocalProperties更改哪些属性? 我可以更改核心,RAM等吗?

Spark提交失败,包含java.lang.NoSuchMethodError:scala.Predef $。$ conforms()Lscala / Predef $$ less $ colon $ less;

我正在使用spark 1.3.1 prebuild version spark-1.3.1-bin-hadoop2.6.tgz 线程“main”中的exceptionjava.lang.NoSuchMethodError:scala.Predef $。$ conforms()Lscala / Predef $$ less $ colon $ less; org.apache.spark.util.Utils $ .getSystemProperties(Utils.scala:1418)org.apache.spark.SparkConf。(SparkConf.scala:58)org.apache.spark.SparkConf。(SparkConf.scala: 52)在com.zoho.zbi.Testing.test(Testing.java:43)com.zoho.zbi.Testing.main(Testing.java:39)使用Spark的默认log4j配置文件:org / apache / spark / log4j- defaults.properties 我正在尝试一个简单的演示应用程序来保存到cassandra SparkConf batchConf= new SparkConf() .setSparkHome(sparkHome) .setJars(jars) .setAppName(ZohoBIConstants.getAppName(“cassandra”))//NO I18N .setMaster(master).set(“spark.cassandra.connection.host”, “localhost”); JavaSparkContext sc = new JavaSparkContext(batchConf); // here we are going to save some data to Cassandra… List […]

如何使用Java中的spark在Dataframe中用特定值替换空值?

我正在尝试提高使用Java在Spark中实现的Logistic回归算法的准确性。 为此,我试图用该列的最频繁值替换列中存在的Null或无效值。 例如:- Name|Place a |a1 a |a2 a |a2 |d1 b |a2 c |a2 c | | d |c1 在这种情况下,我将“Name”列中的所有NULL值替换为“a”,将“Place”替换为“a2”列。 到目前为止,我只能提取特定列中最常用的列。 您能否帮我完成第二步,了解如何使用该列的最常用值替换空值或无效值。

PySpark:java.lang.OutofMemoryError:Java堆空间

我最近在我的服务器上使用PySpark与Ipython一起使用24个CPU和32GB RAM。 它只能在一台机器上运行。 在我的过程中,我想收集大量数据,如下面的代码所示: train_dataRDD = (train.map(lambda x:getTagsAndText(x)) .filter(lambda x:x[-1]!=[]) .flatMap(lambda (x,text,tags): [(tag,(x,text)) for tag in tags]) .groupByKey() .mapValues(list)) 当我做 training_data = train_dataRDD.collectAsMap() 它给了我outOfMemory错误。 Java heap Space 。 此外,我在此错误后无法对Spark执行任何操作,因为它失去了与Java的连接。 它给出了Py4JNetworkError: Cannot connect to the java server 。 看起来堆空间很小。 如何将其设置为更大的限制? 编辑 : 我在运行之前尝试过的事情: sc._conf.set(‘spark.executor.memory’,’32g’).set(‘spark.driver.memory’,’32g’).set(‘spark.driver.maxResultsSize’,’0′) 我按照此处的文档更改了spark选项(如果你执行ctrl-f并搜索spark.executor.extraJavaOptions): http ://spark.apache.org/docs/1.2.1/configuration.html 它说我可以通过设置spark.executor.memory选项来避免OOM。 我做了同样的事情,但似乎没有工作。

如何加载java属性文件并在Spark中使用?

我想将Spark参数(如输入文件,输出文件)存储到Java属性文件中,并将该文件传递给Spark Driver。 我使用spark-submit提交作业但找不到传递属性文件的参数。 你有什么建议吗?

运行apache spark job时,任务不可序列化exception

编写以下java程序来试验apache spark。 程序尝试从相应的文件中读取正面和负面单词列表,将其与主文件进行比较并相应地过滤结果。 import java.io.Serializable; import java.io.FileNotFoundException; import java.io.File; import java.util.*; import java.util.Iterator; import java.util.List; import java.util.List; import org.apache.spark.api.java.*; import org.apache.spark.api.java.function.Function; public class SimpleApp implements Serializable{ public static void main(String[] args) { String logFile = “/tmp/master.txt”; // Should be some file on your system String positive = “/tmp/positive.txt”; // Should be some file on your […]

为什么我的应用程序级别日志在oozie中执行时会消失?

我在CDH5环境中使用oozie。 我也在使用oozie网络控制台。 我无法从我的应用程序中看到任何日志。 我可以看到hadoop日志,火花日志等; 但我看不到特定于应用程序的日志。 在我的应用程序中,我已经包含了src / main / resources / log4j.properties # Root logger option log4j.rootLogger=INFO, stdout # Direct log messages to stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L – %m%n 在我的oozie工作流程中,我有java-actions和spark-actions。 同样重要的是要注意,当我从命令行运行我的应用程序时,我会看到我的应用程序级别日志。

序列化RDD

我有一个RDD,我试图序列化,然后通过反序列化重建。 我试图看看Apache Spark中是否可行。 static JavaSparkContext sc = new JavaSparkContext(conf); static SerializerInstance si = SparkEnv.get().closureSerializer().newInstance(); static ClassTag<JavaRDD> tag = scala.reflect.ClassTag$.MODULE$.apply(JavaRDD.class); .. .. JavaRDD rdd = sc.textFile(logFile, 4); System.out.println(“Element 1 ” + rdd.first()); ByteBuffer bb= si.serialize(rdd, tag); JavaRDD rdd2 = si.deserialize(bb, Thread.currentThread().getContextClassLoader(),tag); System.out.println(rdd2.partitions().size()); System.out.println(“Element 0 ” + rdd2.first()); 当我对新创建的RDD执行操作时,我在最后一行得到exception。 我序列化的方式类似于Spark内部的方式。 Exception in thread “main” org.apache.spark.SparkException: RDD transformations […]

为什么SparkSession为一个动作执行两次?

最近升级到Spark 2.0,我在尝试从JSON字符串创建一个简单的数据集时看到了一些奇怪的行为。 这是一个简单的测试用例: SparkSession spark = SparkSession.builder().appName(“test”).master(“local[1]”).getOrCreate(); JavaSparkContext sc = new JavaSparkContext(spark.sparkContext()); JavaRDD rdd = sc.parallelize(Arrays.asList( “{\”name\”:\”tom\”,\”title\”:\”engineer\”,\”roles\”:[\”designer\”,\”developer\”]}”, “{\”name\”:\”jack\”,\”title\”:\”cto\”,\”roles\”:[\”designer\”,\”manager\”]}” )); JavaRDD mappedRdd = rdd.map(json -> { System.out.println(“mapping json: ” + json); return json; }); Dataset data = spark.read().json(mappedRdd); data.show(); 并输出: mapping json: {“name”:”tom”,”title”:”engineer”,”roles”:[“designer”,”developer”]} mapping json: {“name”:”jack”,”title”:”cto”,”roles”:[“designer”,”manager”]} mapping json: {“name”:”tom”,”title”:”engineer”,”roles”:[“designer”,”developer”]} mapping json: {“name”:”jack”,”title”:”cto”,”roles”:[“designer”,”manager”]} +—-+——————–+——–+ |name| roles| title| […]

如何强制Spark执行代码?

我如何强制Spark执行对map的调用,即使它认为由于其懒惰的评估而不需要执行它? 我试图将cache()与map调用放在一起,但仍然无法解决问题。 我的map方法实际上将结果上传到HDFS。 所以,它并非无用,但Spark认为它是。