Ich habe die folgenden Arbeits Code:pyspark: halten eine Funktion in der Lambda-Ausdruck
def replaceNone(row):
myList = []
row_len = len(row)
for i in range(0, row_len):
if row[i] is None:
myList.append("")
else:
myList.append(row[i])
return myList
rdd_out = rdd_in.map(lambda row : replaceNone(row))
Hier row
ist from pyspark.sql import Row
aber es ist eine Art von langwierigen und hässlich. Ist es möglich, die replaceNone
Funktion zu vermeiden, indem Sie alles direkt in den Lambda-Prozess schreiben? Oder zumindest replaceNone() vereinfachen? Vielen Dank!
im Allgemeinen würde ich sagen, es klingt wie Sie Ihren [Code überprüft] wollen (http: // Codereview .stackexchange.com), aber das ist leicht mit einem einfachen [ternary expression] (http://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator) und Listenverständnis gelöst. –
... was hat das mit irgendetwas zu tun, was ich in der Antwort gesagt oder erwähnt habe? –