input_gzip_compressed_base64_str = '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'
I want to unbase64 this string -> gzip decompress -> unpack these hex bytes into a List objects which are serialized by a C# NET code. The list has 1000 elements.
C# class details:
[Serializable]
public class RawMessage
{
public string SoftwareVersion { get; set; }
public string SessionId { get; set; }
public DateTime StartTime { get; set; }
public string SerialNumber { get; set; }
public DateTime TimeStamp { get; set; }
public DeviceType DeviceType { get; set; }
public int MsgId { get; set; }
public byte[] ByteData { get; set; }
public byte[] PreviousByteData { get; set; }
public string GetRunKey()
{
return $"{SerialNumber}-{StartTime.Ticks / 10000}";
}
}
public enum DeviceType
{
SCPLUS,
DCM
}
How can we do this in python or pyspark UDF?
1