как получить значения атрибута строки в foreachpartition - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь

def customFunction(rows):
    for row in rows:
        key = row.key #this value is boolean instead of actual value same with row["key"]
        val = row.value #this value is boolean instead of actual value same with row["val"]
        #do something with key value

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL Hive integration example") \
    .config("spark.sql.warehouse.dir", warehouse_location) \
    .enableHiveSupport() \
    .getOrCreate()


# spark is an existing SparkSession
spark.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING) USING hive")
spark.sql("LOAD DATA LOCAL INPATH 'examples/src/main/resources/kv1.txt' INTO TABLE src")

# Queries are expressed in HiveQL
df = spark.sql("SELECT key, value FROM src")

# assumption that df row size is of billions
df.rdd.foreachPartition(customFunction)

Я получаю логические значения в ключе, переменные val в пользовательской функции. Как получить действительные значения атрибута строки?

Это выполняется на aws emr 5.29, python 2.7, python код выполняется через spark-submit

1 Ответ

0 голосов
/ 11 марта 2020

В случае, если это поможет, внутри customFunction я пытался использовать значение key в DynamodB, и он сохранял логическое значение, когда ключ был NULL.

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