我有以下代码。在cosmo中,包含数据的巨型JSON被存储。当前,display命令显示Azure Cosmos DB位置中的所有字段。但是,我只想显示在Employee类中指定的字段。 smtNr,smtDt,prcCnyCd和busLinCd。谁能用案例类解释为什么此代码不起作用或如何执行此操作?
val sourceConfigMap = Map(
"Endpoint" -> "https://endpoint/",
"Masterkey" -> "masterkey",
"Database" -> "database",
"Collection" -> "collection",
"ConnectionMode" -> "DirectHttps",
)
final case class Employee(smtNr: String, smtDt: String, prcCnyCd: String, busLinCd: String)
val config = Config(sourceConfigMap)
val output = spark.sqlContext.read.cosmosDB(config).as[Employee]
display(output)
答案 0 :(得分:0)
您需要从Case类对象中创建一个架构,然后使用应用所创建架构的架构方法进行读取。
val config = Config(sourceConfigMap)
val schema = ScalaReflection.schemaFor[Employee].dataType.asInstanceOf[StructType]
val output = spark.sqlContext.read.schema(schema).cosmosDB(config)