Sto provando a passare dalla lettura di file flat CSV a file AVRO su spark. seguito https://github.com/databricks/spark-avro io uso:Leggere un mix non supportato di tipi di unione da un file Avro in Apache Spark
import com.databricks.spark.avro._
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.read.avro("gs://logs.xyz.com/raw/2016/04/20/div1/div2/2016-04-20-08-28-35.UTC.blah-blah.avro")
e ottenere
java.lang.UnsupportedOperationException: This mix of union types is not supported (see README): ArrayBuffer(STRING)
il file README chiaramente:
Questa libreria supporta la lettura di tutti i tipi Avro, con l'eccezione di complesso tipi di unione. Utilizza la seguente mappatura da tipi Avro ai tipi SQL Spark:
quando provo a textread lo stesso file posso vedere lo schema
val df = sc.textFile("gs://logs.xyz.com/raw/2016/04/20/div1/div2/2016-04-20-08-28-35.UTC.blah-blah.avro")
df.take(2).foreach(println)
{ "name": "log_record" , "type": "record", "campi": [{ "name": "richiesta", "tipo": { "type": "record", "name": "request_data", "campi": [{ "name": "datetime", "type": "stringa"}, { "name": "ip", "type": "stringa"}, { "name": "host", "type": "stringa "}, {" name ":" uri " "type": "stringa"}, { "name": "REQUEST_URI", "type": "stringa"}, { "nome: tipo di referer """" ":" stringa "}, {" nome ":" useragent "," tipo ":" stringa "}]}}
< ------- un estratto della piena risposta ------->
dal momento che ho poco controllo sul formato sto ottenendo questi file, mia domanda qui è - c'è una soluzione che qualcuno ha testato e in grado di consigliare?
Io uso dataproc gc con
MASTER = filato cluster scintilla shell --num-esecutori 4 --executor memoria 4G --executor-core 4 --packages com.databricks: scintilla -avro_2.10: 2.0.1, com.databricks: scintilla csv_2.11: 1.3.0
qualsiasi aiuto sarebbe molto apprezzato .....
http://stackoverflow.com/questions/23944615/how-can-i-load-avros-in-spark-using-the-schema-on-board-the-avro-files – Simon
puoi usare newHadoopApi per leggendo i file avro - dovrai usare l'api core di spark e non sql-api. qualche motivo speciale per non usarlo? –