Ошибка записи данных Spark / Databricks в Cosmos DB с API Mongo DB - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь записать данные из Spark (используя Databricks) в базу данных Mongo внутри Azure Cosmos DB. Я создал одну учетную запись Cosmos DB с API как «Azure Cosmos DB для Mongo DB API» .

Я создал базу данных, а также коллекцию, используя проводник данных учетной записи базы данных Azure Cosmos.

При создании коллекции я предоставил следующие данные:

Cosmos DB Collection Input

Я ввел следующую запись в коллекцию

Collection Data input

Я тоже могу проверить данные, выполнив запрос

Query output

Когда я подключаюсь с использованием Databricks, я получаю следующий вывод с printSchema .

printschema output

Когда вызывается display (df) , отображается следующая информация

Display df output

Если я попытаюсь вставить одну строку, используя Spark Dataframe, то вставленные данные показывают нулевое значение для $ t и $ v, используя следующий код

import com.microsoft.azure.cosmosdb.spark.schema._
import com.microsoft.azure.cosmosdb.spark._
import com.microsoft.azure.cosmosdb.spark.config.Config
import org.apache.spark.sql.types._
import org.apache.spark.sql.Row

val configMap = Map(  
  "Endpoint" -> "https://XXXXXX.documents.azure.com:443/",  
  "Masterkey" -> "xxxxxxxxxxxxxxxxx==",  
  "Database" -> "db1",  
  "Collection" -> "collection1")  
val config = Config(configMap)  
val data = Seq(Row("B", "US"))
val schema = List(StructField("name", StringType, true),StructField("country", StringType, true))
val writeDF = spark.createDataFrame(
spark.sparkContext.parallelize(data),
StructType(schema)
)
CosmosDBSpark.save(writeDF, config)
val df = spark.sqlContext.read.cosmosDB(config)

Data output

Я вижу, что добавляются новые столбцы, как показано на рисунке ниже для новой записи.

New Columns

Способ вставки данных из браузера данных и из Spark сильно отличается.

Еще одна вещь, которую я заметил, что после вставки данных из spark браузер данных не может отобразить коллекцию, скорее он получает некоторую ошибку при попытке показать документы.

Data Browser Error

Я хочу знать, что нужно сделать, чтобы правильно вставить данные в базу данных Cosmos DB Mongo из Spark / Databricks. Пожалуйста, помогите.

...