Примените функцию к PySpark DataFrame и создайте новый DataFrame - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь использовать следующий код:

addresses = spark.sql('''SELECT
                              street_address,
                              city,
                              state,
                              zip_code
                       FROM table''')

results = addresses.rdd.map(callAPI).toDF()



def callAPI(row):
  params = {
        'street_line_1': row.street_address,
        'city': row.city,
        'state_code': row.state,
        'postal_code': row.zip_code}
  response = requests.get('http://localhost:5000', params = params, verify = False).json()
  return Row(**response)

При запуске я получаю эту проблему:

    raise ValueError("Some of types cannot be determined by the "
ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling

Я также пытался передать схему с помощью createDataFrame:

results = spark.createDataFrame(results, schema = schema)

Но это дает мне:

    raise TypeError("%s can not accept object %r in type %s" % (dataType, obj, type(obj)))
TypeError: IntegerType can not accept object '0000' in type <class 'str'>

Моя цель - пройти через фрейм данных и применить функцию, а затем получить другой фрейм данных.API возвращает словарь Куда я иду не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...