Как создать PySpark DataFrame из цикла Python - PullRequest
0 голосов
/ 11 октября 2018

Я перебираю несколько веб-сервисов, которые работают нормально

customers= json.loads(GetCustomers())

for o in customers["result"]:
  if o["customerId"] is not None:
    custRoles = GetCustomersRoles(o["customerId"])
    custRolesObj = json.loads(custRoles)

    if custRolesObj["result"] is not None:
      for l in custRolesObj["result"]:
        print str(l["custId"]) + ", " + str(o["salesAmount"])

Это работает, и мой вывод из печати также правильный.Но теперь мне нужно создать DataFrame из этого.Я читал, мы не можем "создать DataFrame с двумя столбцами и добавлять строку за строкой во время цикла".

Но как бы я решил это?

Обновление

Надеюсь, это правильный способ создания списка?

customers= json.loads(GetCustomers())
result = []

for o in customers["result"]:
  if o["customerId"] is not None:
    custRoles = GetCustomersRoles(o["customerId"])
    custRolesObj = json.loads(custRoles)

    if custRolesObj["result"] is not None:
      for l in custRolesObj["result"]:
          result.append(make_opportunity(str(l["customerId"]), str(o["salesAmount"])))

Когда это правильно, как создать из него Dataframe?

1 Ответ

0 голосов
/ 12 октября 2018

Я решил свою проблему, используя следующий код

customers= json.loads(GetCustomers())
result = []

for o in customers["result"]:
  if o["customerId"] is not None:
    custRoles = GetCustomersRoles(o["customerId"])
    custRolesObj = json.loads(custRoles)

    if custRolesObj["result"] is not None:
      for l in custRolesObj["result"]:
          result.append([str(l["customerId"]), str(o["salesAmount"])])

from pyspark.sql import *

df = spark.createDataFrame(result,['customerId', 'salesAmount'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...