pyspark.sql.functions abs () завершается неудачно с вводом столбца PySpark - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь преобразовать следующий запрос HiveQL в PySpark:

SELECT *
FROM ex_db.ex_tbl
WHERE dt >= 20180901 AND 
      dt < 20181001 AND
      (ABS(HOUR(FROM_UNIXTIME(local_timestamp))-13)>6 OR
      (DATEDIFF(FROM_UNIXTIME(local_timestamp), '2018-12-31') % 7 IN (0,6))

Я не очень хорош в PySpark, но я просмотрел список функций.Я дошел до того, что я пытаюсь использовать функцию ABS (), но пытаюсь сделать это в PySpark.Вот что я попробовал:

import pyspark.sql.functions as F
df1.withColumn("abslat", F.abs("lat"))
An error occurred while calling z:org.apache.spark.sql.functions.abs

Это не работает.Я прочитал, что входные данные должны быть столбцом PySpark.Я проверил, и это условие выполнено.

type(df1.lat)
<class 'pyspark.sql.column.Column'>

Может кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 06 декабря 2018

Ваша передача строки в abs, которая действительна в случае scala с $ Operator, который рассматривает строку как столбец.вам нужно использовать метод abs (), подобный этому abs (Dataframe.Column_Name). В вашем случае попробуйте следующее: df1.withColumn ("abslat", abs (df1.lat))

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