如何修复从 cosmos db 中的 databricks scala 读取流中的“错误:未找到:键入 CosmosDBSourceProvider”
Posted
技术标签:
【中文标题】如何修复从 cosmos db 中的 databricks scala 读取流中的“错误:未找到:键入 CosmosDBSourceProvider”【英文标题】:How to fix "error: not found: type CosmosDBSourceProvider" in databricks scala read stream from cosmos db 【发布时间】:2019-11-11 10:13:26 【问题描述】:我正在尝试在 databricks 上使用 scala 从 cosmos db 中读取流,方法是从以下来源:https://docs.microsoft.com/bs-latn-ba/azure/cosmos-db/spark-connector 但不知何故,scala 读取流代码的示例对我不起作用。
我一直在尝试导入更多库,例如“com.microsoft.azure.cosmosdb.spark.streaming._”,但仍然没有成功。
这是我正在尝试使用的 scala 代码
import com.microsoft.azure.cosmosdb.spark.schema._
import com.microsoft.azure.cosmosdb.spark._
import com.microsoft.azure.cosmosdb.spark.config.Config
val readConfig = Config(Map(
"Endpoint" -> cosmos_endpoint,
"Masterkey" -> cosmos_masterkey,
"Database" -> "abc",
"Collection" -> "123",
"ReadChangeFeed" -> "true",
"ChangeFeedQueryName" -> "Scala-Changefeed",
"ChangeFeedStartFromTheBeginning" -> "true",
"InferStreamSchema" -> "false",
"ChangeFeedCheckpointLocation" -> ".../ChagefeedCheckpoint"))
val changeFeed = spark.readStream.format(classOf[CosmosDBSourceProvider].getName).options(readConfig).load()
我得到的错误信息是
command-2054522864350223:16: error: not found: type CosmosDBSourceProvider
val changeFeed = spark.readStream.format(classOf[CosmosDBSourceProvider].getName).options(readConfig).load()
^
【问题讨论】:
【参考方案1】:也许你没有导入一些类。 我认为你可以替换
.format(classOf[CosmosDBSourceProvider].getName)
通过
.format("com.microsoft.azure.cosmosdb.spark.streaming.CosmosDBSourceProvider")
【讨论】:
以上是关于如何修复从 cosmos db 中的 databricks scala 读取流中的“错误:未找到:键入 CosmosDBSourceProvider”的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Azure Cosmos DB 的一个查询中选择多个聚合值
如何从 Service Fabric Mesh 连接到 Azure Cosmos DB
如何使用 azure 流分析将 cosmos db 中的值更新为输出?