Как передать значение ключа словаря Python в фрейм данных where в Pyspark ...
Словарь Python, как показано ниже ...
column_dict= { 'email': 'customer_email_addr' ,
'addr_bill': 'crq_st_addr' ,
'addr_ship': 'ship_to_addr' ,
'zip_bill': 'crq_zip_cd' ,
'zip_ship': 'ship_to_zip' ,
'phone_bill': 'crq_cm_phone' ,
'phone_ship' : 'ship_to_phone'}
У меня есть искровой фрейм данных соколо 3 миллиардов записей.Структура данных выглядит следующим образом ...
source_sql= ("select cust_id, customer_email_addr, crq_st_addr, ship_to_addr,
crq_zip_cd,ship_to_zip,crq_cm_phone,ship_to_phone from odl.cust_master where
trans_dt >= '{}' and trans_dt <= '{}' ").format('2017-11-01','2018-10-31')
cust_id_m = hiveCtx.sql(source_sql)
cust_id.cache()
Мое намерение выяснить конкретных действительных клиентов для электронной почты, адреса, почтового индекса и телефона и работать в цикле для вышеуказанных ключей словаря.Для этого, когда я тестирую спарк-оболочку для одного значения ключа, как показано ниже ...
>>> cust_id_risk_m=cust_id_m.selectExpr("cust_id").where(
("cust_id_m.'{}'").format(column_dict['email']) != '' ).distinct()
Я получаю сообщение об ошибке ... Требуется помощь экспертов в решении этой проблемы.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/mapr/spark/spark-2.1.0/python/pyspark/sql/dataframe.py", line 1026, in filter
raise TypeError("condition should be string or Column")
TypeError: condition should be string or Column