问题标签 [spark-avro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
21037 浏览

apache-spark - 在 spark 中创建带有模式的配置单元外部表

我正在使用 spark 1.6,我的目标是创建外部配置单元表,就像我在配置单元脚本中所做的那样。为此,我首先读入分区的 avro 文件并获取该文件的架构。现在我停在这里,我不知道如何将此模式应用于我的创建表。我使用斯卡拉。需要帮助的家伙。

0 投票
2 回答
2287 浏览

amazon-web-services - 将 spark-avro jar 引导到 Amazon EMR 集群

我想从 Zeppelin 笔记本中读取位于 Amazon S3 中的 avro 文件。我知道 Databricks 有一个很棒的包spark-avro。为了将此 jar 文件引导到我的集群并使其正常工作,我需要采取哪些步骤?

当我在笔记本上写下这些时, val df = sqlContext.read.avro("s3n://path_to_avro_files_in_one_bucket/")

我收到以下错误 - <console>:34: error: value avro is not a member of org.apache.spark.sql.DataFrameReader

我看过这个。我猜那里发布的解决方案不适用于最新版本的 Amazon EMR。

如果有人能给我指点,那真的很有帮助。

0 投票
1 回答
1894 浏览

apache-spark - Amazon EMR 和 S3,org.apache.spark.sql.AnalysisException:路径 s3://..../var/table 已存在

我正在尝试在 Spark 2.0.0 上查找错误的来源,我有一个将表名作为键和数据框作为值的映射,我循环遍历它,最后使用 spark-avro (3.0.0 -preview2) 将所有内容写入 S3 目录。它在本地运行完美(当然使用本地路径而不是 s3 路径),但是当我在 Amazon 的 EMR 上运行它时,它运行了一段时间,然后它说文件夹已经存在并终止(这意味着相同的键值不止一次在那个 for 循环中使用,对吧?)。这可能是线程的问题吗?

0 投票
1 回答
2701 浏览

apache-spark - 在 java 中使用 spark 数据集读取 avro 数据

我是 spark 的新手,我正在尝试使用 java 加载 avro 数据来触发“数据集”(spark 1.6)。我在 scala 中看到了一些示例,但在 java 中没有。任何指向 java 中示例的指针都会有所帮助。我尝试创建一个 javaRDD,然后将其转换为“数据集”。我相信必须有一条直截了当的方法。

0 投票
0 回答
121 浏览

apache-spark - 复杂的json日志数据转换使用?

我是数据科学工具的新手,并且有一个用例将 json 日志转换为扁平的柱状数据,可能被认为是普通的 csv,我正在寻找很多替代方案(工具)来解决这个问题,发现我可以轻松解决这个问题使用Apache Spark Sql但问题是我的 json 日志可能是具有分层数组的复杂数据结构,即我必须多次分解数据集才能对其进行转换。

问题是我不想硬编码数据转换的逻辑,因为我希望用不同的转换逻辑重用相同的代码块,或者以更好的方式把它放在我希望我的转换由配置驱动而不是代码。

出于同样的原因,我正在研究Apache Avro,它为我提供了为输入定义自己的模式的自由,但这里的问题是我不知道我是否也可以定义输出模式?如果不是,那么它将与将 avro 数据结构(生成的)读取并过滤到我的代码逻辑中相同。

我能想到的一种可能的解决方案是定义我的模式以及数组字段和一些标志以通知我的解析器在它们上展开,这也可能是递归的,直到我将输入模式转换为输出,即生成基于转换逻辑在我的输入和输出模式上。

有没有更好的方法我不知道或无法考虑?

0 投票
1 回答
1030 浏览

hadoop - 如何用 Spark 编写 avro 文件?

我有一个代表 avro 模式的 Array[Byte]。我正在尝试将其作为带有 spark 的 avro 文件写入 Hdfs。这是代码:

row._2 是 Array[Byte]

我收到此错误:org.apache.spark.SparkException: Job aborted due to stage failure: Task 4 in stage 1.0 failed 4 times, most recent failure: Lost task 4.3 in stage 1.0 (TID 98, bdac1nodec06.servizi.gr-u.it): java.lang.NullPointerException at java.io.StringReader.<init>(StringReader.java:50) at org.apache.avro.Schema$Parser.parse(Schema.java:958) at org.apache.avro.Schema.parse(Schema.java:1010) at org.apache.avro.mapred.AvroJob.getOutputSchema(AvroJob.java:143) at org.apache.avro.mapred.AvroOutputFormat.getRecordWriter(AvroOutputFormat.java:153) at org.apache.spark.SparkHadoopWriter.open(SparkHadoopWriter.scala:91) at org.apache.spark.rdd.PairRDDFunctions$$anonfun$13.apply(PairRDDFunctions.scala:1068) at org.apache.spark.rdd.PairRDDFunctions$$anonfun$13.apply(PairRDDFunctions.scala:1059) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61) at org.apache.spark.scheduler.Task.run(Task.scala:64) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

0 投票
1 回答
439 浏览

hadoop - HDFS 中的 Avro 模式生成

我有一个场景,我在 HDFS 中有一些 avro 文件。我需要为 HDFS 中的那些 AVRO 数据文件生成 Avro Schema 文件。我尝试使用 Spark(https://github.com/databricks/spark-avro/ blob/master/src/main/scala/com/databricks/spark/avro/SchemaConverters.scala)。

除了将 AVRO 数据文件带到本地并执行 HDFS PUT 之外,还有其他方法吗?

欢迎任何建议。谢谢!

0 投票
1 回答
1429 浏览

apache-spark - 使用 spark-avro 跳过记录中的字段

更新:spark-avro 包已更新以支持这种情况。https://github.com/databricks/spark-avro/releases/tag/v3.1.0

我有一个由我无法控制的第三方创建的 AVRO 文件,我需要使用 spark 处理它。AVRO 模式是其中一个字段是混合联合类型的记录:

spark-avro阅读器不支持此功能:

除了上面列出的类型,它还支持读取三种联合类型: union(int, long) union(float, double) union(something, null),其中something是上面列出的支持的Avro类型之一或者是支持的联合类型之一。

阅读有关 AVRO 的架构演变和解决方案,我希望能够通过指定省略此字段的不同读取器架构来读取文件,同时跳过有问题的字段。根据AVRO Schema Resolution docs,它应该可以工作:

如果作者的记录包含一个名称不存在于读者记录中的字段,则忽略该字段的作者值。

所以我修改使用

avroSchema作者使用的完全相同的架构在哪里,但没有有问题的字段。

但是关于混合联合类型,我仍然遇到同样的错误。

AVRO 是否支持这种模式演变场景?与 avro 火花?还有其他方法可以实现我的目标吗?


更新:我已经使用 Apache Avro 1.8.1 测试了相同的场景(实际上是相同的文件)并且它按预期工作。那么它必须专门与spark-avro. 有任何想法吗?

0 投票
1 回答
961 浏览

scala - 将 Spark Daraframe Avro 地图分解为平面格式

我正在使用 Spark Shell v_1.6.1.5。

我有以下 Spark Scala 数据框:

将它“分解”为以下平面格式(丢弃可能的空值)的确切语法是什么:[id, key, value]

0 投票
2 回答
6779 浏览

pyspark - 安装 spark-avro

我正在尝试读取 pyspark 中的 avro 文件。从How to read Avro file in PySpark中发现 spark-avro 是最好的方法,但我不知道如何从他们的Github repo安装它。没有可下载的jar,我自己构建吗?如何?

它是在集群上运行的 Spark 1.6 (pyspark)。我没有设置它,所以对配置不太了解,但我有 sudo 访问权限,所以我想我应该能够安装东西。但是这台机器没有直接的互联网访问权限,所以需要手动复制和安装东西。

谢谢你。