如何在Azure Synapse Analytics中使用Spark CDM连接器时处理二进制数据类型

elcex8rz  于 2023-05-07  发布在  Apache
关注(0)|答案(1)|浏览(133)

我试图用Spark CDM连接器读取F&O数据,但目前面临二进制数据类型的错误。我不想自己定义架构,因为有30个表,有其他解决方案吗?

DataFrame = spark.read.format("com.microsoft.cdm").option("storage",StorageName)\
.option("manifestPath",manifestPath).option("entity",entityName)\
.option("mode","permissive").load()
An error occurred while calling o3947.load.: java.util.NoSuchElementException: No value found for 'Binary'
at scala.Enumeration.$anonfun$withName$1(Enumeration.scala:157)
at scala.collection.immutable.HashMap$HashTrieMap.getOrElse0(HashMap.scala:596)
at scala.collection.immutable.HashMap.getOrElse(HashMap.scala:73)
at scala.Enumeration.withName(Enumeration.scala:157)
vecaoik1

vecaoik11#

来自Spark CDM连接器文档:
当您将公共数据模型转换为Spark或从Spark转换时,连接器应用以下数据类型Map。
| Spark|通用数据模型|
| --------------|--------------|
| ShortType|小整数|
| 整数类型|整数|
| LongType| BigInteger|
| 日期类型|日期|
| 时间戳|日期时间(可选时间)|
| 字符串类型|弦|
| DoubleType|双倍|
| DecimalType(x,y)|十进制(x,y)(默认小数位数和精度为18,4)|
| FloatType|浮动|
| 布尔类型|布尔|
| 字节类型|字节|
连接器不支持公共数据模型二进制数据类型。
最后一句话是相关的。似乎您有一些Binary类型,此连接器不支持这些类型。是否可以更改源数据的类型,或者避免阅读Binary列?

相关问题