import org.apache.spark.sql.Dataset import org.apache.spark.sql.functions._ case class UserAndRequest( USER_NAME:String, REQUEST_DATE:java.sql.Date, START_DATE:java.sql.Date, END_DATE:java.sql.Date, STATUS:String, REQUEST_ID:Long ) val joined : Dataset[UserAndRequest] = df1.withColumn("REQUEST_ID", monotonically_increasing_id). join(df2,$"USER_NAME" === $"NAME", "left"). as[UserAndRequest] val lastRowByRequestId = joined. groupByKey(_.REQUEST_ID). reduceGroups( (x,y) => if (x.REQUEST_DATE.getTime > x.END_DATE.getTime && x.END_DATE.getTime > y.END_DATE.getTime) x else y ).map(_._2) def logic(status: String): String = { if (status == "IN") "Our user" else if (status == "OUT") "not our user" else "No Information" } val logicUDF = udf(logic _) val finalDF = lastRowByRequestId.withColumn("USER_STATUS",logicUDF($"REQUEST_DATE"))
, которые дают:
wintypes.pas и winprocs.pas были заменены windows.pas (с долгого времени). Необходимо использовать Псевдонимы Единицы для замены всего wintypes окнами.
Необходимо все еще использовать древнее (предварительный Delphi 2) названия того, что является теперь единицей Windows. Я рекомендую, чтобы Вы искали и заменили все свои списки использования и заменили WinTypes и WinProcs с Windows.
С другой стороны, можно удостовериться, что у Вас есть "WinTypes=Windows" и "WinProcs=Windows" в разделе Unit Aliases Ваших опций проекта, но тем не менее, после всех этих десятилетий, я шел бы дальше к 32-разрядному миру! (16-разрядный являющийся главным ограничением, которое означало, WinTypes и WinProcs были двумя отдельными единицами.)
Вы используете компонент Куба Решения? Поэтому ищите ссылки на единице MXQEDCOM.pas в Ваших источниках.
На 2006 BDS, единственная ссылка для Wintypes и Winprocs, который я нашел.
Между прочим, удостоверьтесь, что Псевдонимы Единицы включали значения, которые записал Barry Kelly.
Почему wintypes.dcu не может быть найден больше, я не знаю. Но другие два очевидны, развивают ошибки: если Delphi не может скомпилировать код из-за синтаксических ошибок (и недостающий файл считают синтаксической ошибкой), это останавливает завершение кода и не может определить местоположение исходного кода никакое более длительное использование Ctrl + Щелчок.
Открытый проект - опции, компилятор Delphi, в псевдонимы модулей вставьте:
WinTypes=Windows;WinProcs=Windows;DbiProcs=BDE;DbiTypes=BDE;DbiErrs=BDE
.