Я пытаюсь прочитать некоторые данные из хаопа в RDD в Искры с помощью интерактивной оболочки Scala, но у меня возникают проблемы с доступом к некоторым классам, которые мне нужны для десериализации данных.Ссылка на java-вложенный класс в Spark Scala
Я начинаю импортировать необходимый класс
import com.example.ClassA
Который работает отлично. ClassA
находится в банке на пути «банок» и имеет ClassB
как общественный статический вложенный класс
Я тогда пытаюсь использовать ClassB
как так:
val rawData = sc.newAPIHadoopFile(dataPath, classOf[com.exmple.mapreduce.input.Format[com.example.ClassA$ClassB]], classOf[org.apache.hadoop.io.LongWritable], classOf[com.example.ClassA$ClassB])
Это немного осложненной одной из другие классы принимают ClassB
как тип, но я думаю, что все должно быть хорошо.
Когда я исполняю эту линию, я получаю следующее сообщение об ошибке:
<console>:17: error: type ClassA$ClassB is not a member of package com.example
Я также попытался с помощью оператора импорта
import com.example.ClassA$ClassB
, и это также, кажется, хорошо с этим.
Любые советы о том, как я мог бы приступить к отладке это было бы оценено
Спасибо за чтение.
обновление:
Изменение '$' к '' ссылаться на вложенный класс, кажется, пройти эту проблему, хотя тогда я получил следующую ошибку синтаксиса:
'<console>:17: error: inferred type arguments [org.apache.hadoop.io.LongWritable,com.example.ClassA.ClassB,com.example.mapreduce.input.Format[com.example.ClassA.ClassB]] do not conform to method newAPIHadoopFile's type parameter bounds [K,V,F <: org.apache.hadoop.mapreduce.InputFormat[K,V]]
Я думаю, вы имеете в виду [вложенный] (http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html) класс, а не [подкласс] (http://docs.oracle.com/) JavaSE/учебник/Java/IandI/subclasses.html). –
Я должен упомянуть, я использую Spark 1.2.0 – user1111284
Извините, да, это вложенный класс, не подкласс - мой плохой – user1111284