Чтение вывода JSON из базы данных в PySpark - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь прочитать некоторые выходные данные из базы данных SQL Server в PySpark.

Формат данных следующий:

{
  "var1": 0,
  "var2": 0,
  "var3": 1,
  "var4": null,
  "var5": 22156,
  "var6": 0,
  "var7": 1,
  "var8": "Denver",
  "var9": "Colorado",
  "var10": null,
  "var11": "2019-02-03",
  "var12": "5E98915C-FFE0-11E8-931E-0242AC11000A",
  "var13": null,
  "var14": null,
  "var15": "USA",
  "var16": "freight",
  "var17": null,
  "var18": null,
  "var19": "denv",
  "var20": "e385dbf6-8b27-4779-a566-f5b75feaf83e",
  "var21": 1547467268304,
  "var22": "3281523"
}
{
  "var1": 0,
  "var2": 0,
  "var3": 1,
  "var4": null,
  "var5": 65618,
  "var6": 0,
  "var7": 1,
  "var8": "Orlando",
  "var9": "Florida",
  "var10": null,
  "var11": "2018-12-14",
  "var12": "578F16D8-FFE0-11E8-931E-0242AC11000A",
  "var13": null,
  "var14": null,
  "var15": "USA",
  "var16": "air",
  "var17": null,
  "var18": null,
  "var19": "orla",
  "var20": "4a231f2c-fe1d-46e8-bc4a-d3333a081566",
  "var21": 1547467268305,
  "var22": "3281523"
}

Примечание : Для краткости я включил только пару записей

Затем я использую следующий (простой) код, чтобы прочитать это в PySpark:

df = spark.read.option("multiline", "true").json("/Users/davidmoors/Documents/MSSQL_Output_Example")
print("--- JSON file read in: %s seconds ---" % (time.time() - start_time))


df.printSchema()
print(df.count())
df.show(5)

И я получаю следующий вывод:

--- JSON file read in: 1.6511101722717285 seconds ---
root
 |-- var1: long (nullable = true)
 |-- var10: string (nullable = true)
 |-- var11: string (nullable = true)
 |-- var12: string (nullable = true)
 |-- var13: string (nullable = true)
 |-- var14: string (nullable = true)
 |-- var15: string (nullable = true)
 |-- var16: string (nullable = true)
 |-- var17: string (nullable = true)
 |-- var18: string (nullable = true)
 |-- var19: string (nullable = true)
 |-- var2: long (nullable = true)
 |-- var20: string (nullable = true)
 |-- var21: long (nullable = true)
 |-- var22: string (nullable = true)
 |-- var3: long (nullable = true)
 |-- var4: string (nullable = true)
 |-- var5: long (nullable = true)
 |-- var6: long (nullable = true)
 |-- var7: long (nullable = true)
 |-- var8: string (nullable = true)
 |-- var9: string (nullable = true)

1
+----+-----+----------+--------------------+-----+-----+-----+-------+-----+-----+-----+----+--------------------+-------------+-------+----+----+-----+----+----+------+--------+
|var1|var10|     var11|               var12|var13|var14|var15|  var16|var17|var18|var19|var2|               var20|        var21|  var22|var3|var4| var5|var6|var7|  var8|    var9|
+----+-----+----------+--------------------+-----+-----+-----+-------+-----+-----+-----+----+--------------------+-------------+-------+----+----+-----+----+----+------+--------+
|   0| null|2019-02-03|5E98915C-FFE0-11E...| null| null|  USA|freight| null| null| denv|   0|e385dbf6-8b27-477...|1547467268304|3281523|   1|null|22156|   0|   1|Denver|Colorado|
+----+-----+----------+--------------------+-----+-----+-----+-------+-----+-----+-----+----+--------------------+-------------+-------+----+----+-----+----+----+------+--------+

Почему мой код читает только в первом наборе записей, но не во втором?

Может кто-нибудь посоветовать мне, как я могу прочитать все данные в PySpark?У меня есть очень большой файл с миллионами записей, сохраненных в этом формате.

Спасибо.

...