如何在 BigQuery 中将 8 字节双精度数小端解析为 float64?

问题描述

我有一个字符串,写成 8 字节双精度数字,小端,想用 float64 转换它,以便 BigQuery 可以将它作为数字处理。

# example
from: hex(little endian): EC51B81E852B4340

to: float64: 38.34

是否有针对此的智能解决方案?

谢谢。

解决方法

我只有第一步,您可以使用 JavaScript 功能。我进行了搜索,但没有找到可以直接从 BigQuery 引用的库。您必须找到一个库和 upload it to GCS 才能引用它。我还找到了一些代码片段来执行字节 -> 双重编码,但不确定它们的质量。

CREATE TEMP FUNCTION hex_to_float(x BYTES) RETURNS FLOAT64
LANGUAGE js
AS """
  // Call a JS library to translate byte array to double
""";

SELECT hex_to_float(FROM_HEX('EC51B81E852B4340'));