Apache Parquet I/O 连接器
- Java SDK
- Python SDK
Beam SDK 包含内置转换,可以从 Apache Parquet 文件读取数据并向其中写入数据。
开始之前
要使用 ParquetIO,请将 Maven 工件依赖项添加到您的 pom.xml
文件中。
其他资源
ParquetIO 预装在 Apache Beam python sdk..2.60.0 中。
其他资源
在 2.4 之前的 Spark 中使用 ParquetIO
ParquetIO
依赖于 Apache Parquet 1.10.0 中引入的 API。**Spark 2.4.x 兼容,无需执行任何额外步骤**。较旧版本的 Spark 在执行期间将无法开箱即用,因为预装的 Parquet 库版本将优先使用。应应用以下解决方法。
**注意**:以下技术允许您使用
ParquetIO
正确执行管道。此 Beam 连接器使用或生成的 Parquet 文件应与集群上的其他工具保持互操作性。
正常包含 Parquet 工件,并确保它将正确版本的 Parquet 作为传递依赖项引入。
重新定位以下包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>shaded</shadedClassifierName>
<relocations>
<relocation>
<pattern>org.apache.parquet</pattern>
<shadedPattern>shaded.org.apache.parquet</shadedPattern>
</relocation>
<!-- Some packages are shaded already, and on the original spark classpath. Shade them more. -->
<relocation>
<pattern>shaded.parquet</pattern>
<shadedPattern>reshaded.parquet</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.avro</pattern>
<shadedPattern>shaded.org.apache.avro</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
此技术经测试可用于 Spark 2.2.3、Spark 2.3.3 和 Spark 2.4.3(尽管对于 Spark 2.4+ 它是可选的)。
最后更新于 2024/10/31
您找到所需的一切了吗?
一切都有用且清晰吗?您想更改任何内容吗?请告诉我们!