我将spark dataframe另存为拼图文件,并且该dataframe具有从avro对象构建的行。完全相同的代码在这里-
我面临的挑战是,当传入数据中缺少整型字段时,我希望能够有空值。Avro似乎通过使用Union类型来允许这样做,但是当我没有在avsc中指定默认值或指定默认值"null“时,我会得到如下错误:
Caused by: org.apache.avro.AvroRuntimeException: Field xxx type:LONG pos:7 not set and has no default value
at org.apache.avro.gener
我面临以下困难:我正在使用Spark1.4.1、Python2.7.8和Spark _2.10-1.0.0
我正在尝试使用spark将Python字节数组存储在avro文件中。我的目的是存储与使用特定图像编码器编码的图像块对应的字节链。
它在转换异常时失败:
org.apache.avro.file.DataFileWriter$AppendWriteException: org.apache.avro.UnresolvedUnionException: Not in union ["bytes","null"]:
下面是我为再现这个问题而做的一个示例:
fro
我得到了几个Avro文件,它们是从java类A的对象生成的。使用spark-shell (Spark 1.4.0),我可以使用spark-avro (2.0.1版)将这些文件读取到数据帧中。
val df = sqlContext.read.avro("file.avro")
只要spark shell不知道类A,就可以正常工作。如果我向shell添加一个jar,并发出相同的命令,我会得到以下异常:
A cannot be cast to org.apache.avro.generic.IndexedRecord
at org.apache.avro.generic.G
我正在尝试使用spark-avro包,如中所描述的。
当我提交以下命令时:
val df = spark.read.format("avro").load("~/foo.avro")
我收到一个错误:
java.util.ServiceConfigurationError: org.apache.spark.sql.sources.DataSourceRegister: Provider org.apache.spark.sql.avro.AvroFileFormat could not be instantiated
at java.util.Servic
我正在尝试在Hive中创建一个外部表,并在BigQuery中创建另一个表,使用与Spark编写的Avro格式存储在Google Storage中的相同数据。
我使用的是带有Spark 2.2.0、Spark-avro 4.0.0和Hive 2.1.1的Dataproc集群
Avro版本/包之间有相同的差异,但如果我使用Hive创建表,然后使用Spark编写文件,我可以在Hive中看到它们。
但对于BigQuery是不同的,它可以读取Hive Avro文件,但不能读取Spark Avro文件。
错误:
The Apache Avro library failed to parse the hea
我正在尝试将数据文件保存为avro文件。我读过一个有许多嵌套层的xml文件。它把它作为数据存储。成功地存储了数据。xml有许多名称空间标头,如@nso、@ns1、@ns2等,它们成为数据格式中的标头。当我试图将其保存为avro文件时,它会给出以下错误:“线程中的异常”主“org.apache.avro.SchemaParseException:非法初始字符:@ns0”
val conf = new SparkConf()
.setMaster("local[2]")
.setAppName("conversion")
val
我有一个Python脚本,它使用fastavro库来转换csv文件并根据提供的模式序列化它:
from fastavro import writer
from fastavro.schema import load_schema
import csv
schema = load_schema('schema.avsc')
def csv_reader():
with open('data.csv') as f:
yield from csv.DictReader(f)
with open('data.snappy.avro
我使用的是com.databricks.spark.avro。当我在spark-shell中运行它时,就像这样:spark-shell --jar spark-avro_2.11-4.0.0.jar,我可以通过这样的方式读取文件:
import org.apache.spark.sql.SQLContext
val sqlContext = new SQLContext(sc)
val avroInput = sqlContext.read.format("com.databricks.spark.avro").load(inputPath)
avroInput.write.f