2016-12-24 1 views
0

ADAM 및 Zeppelin을 사용하여 게놈 분석을 시도합니다. 나는이 권리를하고 있지만 아래의 문제에 부딪 치고 있는지 잘 모르겠습니다.Spark, ADAM 및 Zeppelin

%dep 
z.reset() 
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven") 
z.load("com.databricks:spark-csv_2.10:1.2.0") 
z.load("mysql:mysql-connector-java:5.1.35") 
z.load("org.bdgenomics.adam:adam-core_2.10:0.20.0") 
z.load("org.bdgenomics.adam:adam-cli_2.10:0.20.0") 
z.load("org.bdgenomics.adam:adam-apis_2.10:0.20.0") 

%spark 

import org.bdgenomics.adam.rdd.ADAMContext._ 
import org.bdgenomics.adam.rdd.ADAMContext 
import org.bdgenomics.adam.projections.{ AlignmentRecordField, Projection } 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
import org.bdgenomics.adam.rdd.ADAMContext 
import org.bdgenomics.adam.rdd.ADAMContext._ 
import org.bdgenomics.adam.projections.Projection 
import org.bdgenomics.adam.projections.AlignmentRecordField 
import scala.io.Source 
import org.apache.spark.rdd.RDD 
import org.bdgenomics.formats.avro.Genotype 
import scala.collection.JavaConverters._ 
import org.bdgenomics.formats.avro._ 
import org.apache.spark.SparkContext._ 
import org.apache.spark.mllib.linalg.{ Vector => MLVector, Vectors } 
import org.apache.spark.mllib.clustering.{ KMeans, KMeansModel } 

val ac = new ADAMContext(sc) 

나는 오류

import org.bdgenomics.adam.rdd.ADAMContext._ 
import org.bdgenomics.adam.rdd.ADAMContext 
import org.bdgenomics.adam.projections.{AlignmentRecordField, Projection} 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
import org.bdgenomics.adam.rdd.ADAMContext 
import org.bdgenomics.adam.rdd.ADAMContext._ 
import org.bdgenomics.adam.projections.Projection 
import org.bdgenomics.adam.projections.AlignmentRecordField 
import scala.io.Source 
import org.apache.spark.rdd.RDD 
import org.bdgenomics.formats.avro.Genotype 
import scala.collection.JavaConverters._ 
import org.bdgenomics.formats.avro._ 
import org.apache.spark.SparkContext._ 
import org.apache.spark.mllib.linalg.{Vector=>MLVector, Vectors} 
import org.apache.spark.mllib.clustering.{KMeans, KMeansModel} 
res7: org.apache.spark.SparkContext = [email protected] 
<console>:188: error: constructor ADAMContext in class ADAMContext cannot be accessed in class $iwC 
       new ADAMContext(sc) 

보면 어떤 생각이 다음과 같은 출력을 얻을? 종속성이 누락 되었습니까? ^

답변

2

사용중인 버전의 파일 ADAMContext.scala에 따릅니다. 생성자는 private입니다.

class ADAMContext private (@transient val sc: SparkContext) 
    extends Serializable with Logging { 
    ... 
} 

대신 다음과 같이 사용할 수 있습니다.

import org.bdgenomics.adam.rdd.ADAMContext._ 

val adamContext: ADAMContext = z.sc 

그것은 그것은 Z 참조를 사용하지 않고 일했다

object ADAMContext { 
    implicit def sparkContextToADAMContext(sc: SparkContext): ADAMContext = 
     new ADAMContext(sc) 
} 
+0

나는 그 시도하고 객체가 null '% 스파크를 것으로 보인다 발 교류 : ADAMContext = SC 교류 : org.bdgenomics.adam.rdd.ADAMContext = null' –

0

객체 ADAMContext의 암시 적 변환을 사용합니다!

val ac:ADAMContext = sc 
val genotypes: RDD[Genotype] = ac.loadGenotypes("/tmp/ADAM2").rdd 

출력

ac: org.bdgenomics.adam.rdd.ADAMContext = [email protected] 

genotypes: 
org.apache.spark.rdd.RDD[org.bdgenomics.formats.avro.Genotype] = MapPartitionsRDD[3] at map at ADAMContext.scala:207 

나는 아담 쉘 프롬프트에서이 일을 시도했다 나는 암시 적 변환을 사용하는 것을 기억하지 않습니다. 그것은 0.19 버전의 ADAM을 사용하고있었습니다.

관련 문제