我已经上了三节课
任务未序列化
public class Person implements Serializable
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setAge(int age)
{
this.age = age;
}
}
public class sqlTestv2 implements Serializable
{
private int appID;
private int dataID;
private JavaSparkContext sc;
public JavaRDD<Person> getDataRDD()
{
JavaRDD<String> test = sc.textFile("hdfs://localhost:8020/user/cloudera/people.txt");
JavaRDD<Person> people = test.map(
new Function<String, Person>() {
public Person call(String line) throws Exception {
String[] parts = line.split(",");
Person person = new Person();
person.setName(parts[0]);
person.setAge(Integer.parseInt(parts[1].trim()));
return person;
}
});
return people;
}
}
public class sqlTestv1 implements Serializable
{
public static void main(String[] arg) throws Exception
{
SparkConf conf = new SparkConf().setMaster("local").setAppName("wordCount");
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);
sqlTestv2 v2=new sqlTestv2(1,1,sc);
JavaRDD<Person> test=v2.getDataRDD();
DataFrame schemaPeople = sqlContext.createDataFrame(test, Person.class);
schemaPeople.registerTempTable("people");
DataFrame df = sqlContext.sql("SELECT age FROM people");
df.show();
}
}
堆栈告诉你答案。您要传递给SQLTestV2
的是JavaSparkContext
。您应该将sc传递到方法中,而不是类中
我想将转换流写入Elasticsearch索引,如下所示: 行抛出错误(见下文)。我尝试了不同的方法来解决这个问题(例如,在旁边添加),但似乎没有任何效果。 它是否与Hadoop的配置有关?(我参考了以下消息:) 更新:
我在我大学的热图项目中,我们必须从txt文件(坐标、高度)中获取一些数据(212Go),然后将其放入HBase以在带有Express的Web客户端上检索它。 我练习使用144Mo文件,这是工作: 但是我现在使用212Go文件,我有一些内存错误,我猜收集方法会收集内存中的所有数据,所以212Go太多了。 所以现在我在尝试这个: 我得到了“org.apache.spark.SparkException
将现有应用程序从Spark 1.6移动到Spark 2.2*(最终)会导致错误“org.apache.spark.SparkExctive:任务不可序列化”。我过于简化了我的代码,以演示同样的错误。代码查询拼花文件以返回以下数据类型:“org.apache.spark.sql.数据集[org.apache.spark.sql.行]”我应用一个函数来提取字符串和整数,返回字符串。一个固有的问题与Sp
我对Spark,Scala和Cassandra都是新手。使用Spark,我试图从MySQL获取一些ID。 我可以看到在控制台打印的ID。 当我试图在每个提取id上运行相同的函数时 它给出与例外相同的例外 在阅读spark-shell中的Apache spark:“sparkException:Task not serializable”后,我尝试将@transient添加到RDDs中
null 每当我尝试访问sc时,我会得到以下错误。我在这里做错了什么?
我的spark任务是在运行时抛出不可序列化的任务。谁能告诉我我做错了什么吗? 以下是stacktrace: