как использовать фильтр pyspark, когда имя столбца пустое - PullRequest
0 голосов
/ 12 июня 2019

В моем фрейме данных pyspark есть несколько столбцов, в которых, например, пусто. Входящая доставка (отметьте место между ними). Когда я пытаюсь сравнить, используя .filter, я получаю сообщение об ошибке. Я не хочу переопределять схему, удаляя пробел, так как у меня огромная таблица, в которой почти все имеют одинаковое пространство в имени. Есть ли быстрый способ использовать фильтр с именем, пустым

dfjoin.where ('Входящая поставка = 0090043373') .show ()

Error


Py4JJavaError Traceback (последний вызов был последним) ~ \ Desktop \ spark \ spark-2.4.3-bin-hadoop2.7 \ python \ pyspark \ sql \ utils.py in deco (* a, ** кВт) 62 попробуйте: ---> 63 возврата f (* a, ** кВт) 64 за исключением py4j.protocol.Py4JJavaError как e:

~ \ Desktop \ spark \ spark-2.4.3-bin-hadoop2.7 \ python \ lib \ py4j-0.10.7-src.zip \ py4j \ protocol.py в get_return_value (ответ, gateway_client, target_id, name ) 327 "Произошла ошибка при вызове {0} {1} {2}. \ N". -> 328 формат (target_id, ".", Name), значение) 329 остальное:

Py4JJavaError: Произошла ошибка при вызове o1424.filter. : org.apache.spark.sql.catalyst.parser.ParseException: несоответствующий ввод '=' ожидающий (строка 1, позиция 16)

1 Ответ

0 голосов
/ 12 июня 2019

Например, так:

>>> df = spark.createDataFrame([("a",), ("b",)], ["column name"])
>>> df.show(False)
+-----------+
|column name|
+-----------+
|          a|
|          b|
+-----------+
>>> from pyspark.sql.functions import col
>>> df.filter(col("column name") == 'b').show()
+-----------+
|column name|
+-----------+
|          b|
+-----------+
...