Я наблюдаю странное поведение в pyspark 3.0.1 У меня есть фрейм данных abc, содержащий идентификатор, группу и дату. Данные образца выглядят так
ID Group Date
11A 5 2019-12-10
12A 4 2019-06-11
12A 4 2019-09-08
10A 5 2019-12-08
9C 3 2019-06-04
printSchema () перенастраивается
ID: string (nullable = true)
Group: string (nullable = true)
Date: date (nullable = true)
Я пытаюсь сгруппировать данные по идентификатору, чтобы получить максимальную дату по идентификатору. Итак, я написал следующий запрос
abc.registerTempTable("abc")
abc_maxDate=spark.sql("select ID,max(Date) as LATEST_Date from abc where Date is not NULL group by Id")
Но пока я пытаюсь просмотреть результат, я не вижу данных для 11A
. Даже если я пытаюсь выполнить следующий запрос
check=spark.sql("select ID,Date from abc where ID='11A")
также не возвращает никакого результата. Но следующий запрос возвращает результат
check1=spark.sql("select * from abc where ID='11A")
Кто-нибудь из вас сталкивался с подобной проблемой? Можете ли вы подсказать мне, в чем может быть вероятная причина такой проблемы?
Извините мой плохой, это не Latest_date
, это Date
. Исправил это
Ваш отредактированный код мне подходит. Вероятно, тебе не хватает чего-то еще
@mck, я давал по фиктивным данным. Мой фактический размер данных составляет около 500 тыс. Записей. Я ищу предложения, чтобы выяснить вероятную причину этой проблемы. Я новичок в pyspark. Я разместил это здесь, чтобы такой эксперт, как вы, мог посоветовать мне, где мне искать, чтобы исправить проблему.
Боюсь, я мало что могу сделать, кроме как угадывать
Конечно,
check
не может вернуть никаких результатов.Latest_Date
не существует в таблицеabc
.