En la chispa de quiero salvar RDD objetos a la colmena de la tabla. Estoy tratando de usar createDataFrame pero que es tirar el

Excepción en el thread «main» java.lang.NullPointerException

 val products=sc.parallelize(evaluatedProducts.toList);
 //here products are RDD[Product]
 val productdf = hiveContext.createDataFrame(products, classOf[Product])

Estoy usando Spark versión 1.5.

OriginalEl autor Arvind Kumar Anugula | 2016-05-05

1 Comentario

  1. 9

    Si su Producto es una clase (no es un caso de la clase), te sugiero que transformar su rdd para RDD[Tupla] antes de crear el DataFrame:

    import org.apache.spark.sql.hive.HiveContext
    
    val hiveContext = new HiveContext(sc)
    import hiveContext.implicits._
    
    val productDF = products
      .map({p: Product => (p.getVal1, p.getVal2, ...)})
      .toDF("col1", "col2", ...)
    

    Con este enfoque, usted tendrá los atributos del Producto como columnas en el DataFrame.

    A continuación, puede crear una tabla temporal con:

    productDF.registerTempTable("table_name")
    

    o una tabla física con:

    productDF.write.saveAsTable("table_name")
    
    Gracias Daniel. He intentado como usted sugiere, pero es devolver error como «valor toDF no es un miembro de la org.apache.chispa.rdd.RDD» val productdf= products.map({ p =>(p.getcol1(), p.getCol2(),p.isValide())}).toDF("col1", "col2","col3");
    Ah, se me olvidaba, usted debe llamar a import hiveContext.implicits._ voy a agregar a la respuesta.
    Hecho como usted sugiere, pero que está diciendo hiveContext.implicits._ no se encuentra. tengo que agregar a cualquier frasco para pom archivo ya de dependencia siguiente hay en el pom. <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.10</artifactId> <version>1.2.1</version> </dependency>
    Creo que si se actualiza la chispa de la colmena para que coincida con su chispa versión es suficiente: <artifactId>spark-hive_2.10</artifactId> <version>1.5.1</version>. Idealmente, la chispa de la colmena siempre debe coincidir con la Chispa de la versión. Si no es suficiente, usted puede tratar de añadir la chispa-sql paquete
    Las versiones actualizadas como se menciona a continuación, pero con el mismo problema. ` error: no se encuentra: objeto hiveContext [ERROR] importación hiveContext.implicits._ ` <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.10</artifactId> <version>1.5.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.10</artifactId> <version>1.5.2</version> </dependency>

    OriginalEl autor Daniel de Paula

Dejar respuesta

Please enter your comment!
Please enter your name here