Chciałbym zatrzymać tylko tych pracowników, którzy mają identyfikator oddziału wymieniony w drugiej tabeli.Filtr oparty na innym RDD w Spark
Employee table
LastName DepartmentID
Rafferty 31
Jones 33
Heisenberg 33
Robinson 34
Smith 34
Department table
DepartmentID
31
33
Próbowałem następujący kod, który nie działa:
employee = [['Raffery',31], ['Jones',33], ['Heisenberg',33], ['Robinson',34], ['Smith',34]]
department = [31,33]
employee = sc.parallelize(employee)
department = sc.parallelize(department)
employee.filter(lambda e: e[1] in department).collect()
Py4JError: An error occurred while calling o344.__getnewargs__. Trace:
py4j.Py4JException: Method __getnewargs__([]) does not exist
pomysłów? Używam Spark 1.1.0 z Python. Jednak zaakceptowałbym odpowiedź Scala lub Pythona.
Czy wymagają listę dział być RDD? – maasg
Niezupełnie. Lista departamentów jest ładowana z HDFS, ale nie jest zbyt duża. – poiuytrez