我正在执行scala Spark作业,该作业需要使用Java库(youtube / vitess),该库依赖于比DataProc 1.1当前提供的GRPC(1.01),Guava(19.0)和Protobuf(3.0.0)更高的版本。图片。
当在本地运行项目并使用maven进行构建时,将加载这些依赖项的正确版本,作业将无问题运行。将作业提交给DataProc时,首选这些库的DataProc版本,并且该作业将引用无法解析的类函数。
在DataProc上提交Spark作业时,如何确保加载正确版本的依赖项依赖关系的推荐方法是什么?我无法重写此库的组件,以使用DataProc提供的这些软件包的旧版本。
我在使用 Spark 通过自定义 JDBC 读取数据时遇到问题。我将如何覆盖通过 jdbc url 推断的 sql 方言?
有问题的数据库是 vitess ( https://github.com/youtube/vitess ),它运行一个 mysql 变体,所以我想指定一个 mysql 方言。jdbc url 以 jdbc:vitess/ 开头
否则 DataFrameReader 会推断默认方言使用 """ 作为引用标识符。因此,通过 spark.read.jdbc 的查询被发送为
从表中选择“id”、“col2”、“col3”、“etc”
它选择字符串表示而不是列值而不是
从表中选择 id、col2、col3 等