U-SQL Python 扩展 DataFrame 列格式
U-SQL Python extension DataFrame Column Format
我正在尝试使用 Python 对 运行 一些代码的扩展,但是当我尝试引用 pandas 数据框中的列时,它说找不到该列:
if "hist_future_flag" not in [x.lower() for x in dfBLData.columns.values.tolist()]:
ProcessSuccessFlag = False
print('dfBLData (Input DataFrame) requires "hist_future_flag" column. Cols in dfBLData are: ')
print(', '.join(dfBLData.columns.values.tolist()))
dfBLData (Input DataFrame) requires ""hist_future_flag"" column. Cols in dfBLData are:
b'geography', b'mitm_key', b'target', b'dow', b'time_key', b'hist_future_flag' ... [and so on]
所以看起来它们是以字节形式传入的,但是当我尝试转换 headers 时,python 说它们是字符串,无法解码!
这是相关的 U-SQL 我是 运行ning:
@d =
SELECT [geography], [mitm_key], [target], [dow], [time_key],[hist_future_flag]
FROM modeling.dbo.LandingZone
WHERE geography == 5;
@bl =
REDUCE @d
ON geography, mitm_key
PRODUCE
time_key DateTime,
predict float,
hist_future_flag int
USING new Extension.Python.Reducer(pyScript:@myScript);
OUTPUT @bl
TO "/test_reducer.csv"
USING Outputters.Csv(outputHeader: true);
事实证明,当使用 "VALUES" 选择方法以外的任何方法时,列名称表示为 "b'columnname'"。它基本上是列名称作为字节的字符串化表示。
谢谢。我将此线程转发给产品团队,看看它是否已经修复,如果没有,他们将添加修复。
我们在 2017 年 4 月 13 日部署了新位,我们进行了更改以不将字符串转换为字节。请重新安装扩展并重试。
我正在尝试使用 Python 对 运行 一些代码的扩展,但是当我尝试引用 pandas 数据框中的列时,它说找不到该列:
if "hist_future_flag" not in [x.lower() for x in dfBLData.columns.values.tolist()]:
ProcessSuccessFlag = False
print('dfBLData (Input DataFrame) requires "hist_future_flag" column. Cols in dfBLData are: ')
print(', '.join(dfBLData.columns.values.tolist()))
dfBLData (Input DataFrame) requires ""hist_future_flag"" column. Cols in dfBLData are: b'geography', b'mitm_key', b'target', b'dow', b'time_key', b'hist_future_flag' ... [and so on]
所以看起来它们是以字节形式传入的,但是当我尝试转换 headers 时,python 说它们是字符串,无法解码!
这是相关的 U-SQL 我是 运行ning:
@d =
SELECT [geography], [mitm_key], [target], [dow], [time_key],[hist_future_flag]
FROM modeling.dbo.LandingZone
WHERE geography == 5;
@bl =
REDUCE @d
ON geography, mitm_key
PRODUCE
time_key DateTime,
predict float,
hist_future_flag int
USING new Extension.Python.Reducer(pyScript:@myScript);
OUTPUT @bl
TO "/test_reducer.csv"
USING Outputters.Csv(outputHeader: true);
事实证明,当使用 "VALUES" 选择方法以外的任何方法时,列名称表示为 "b'columnname'"。它基本上是列名称作为字节的字符串化表示。
谢谢。我将此线程转发给产品团队,看看它是否已经修复,如果没有,他们将添加修复。
我们在 2017 年 4 月 13 日部署了新位,我们进行了更改以不将字符串转换为字节。请重新安装扩展并重试。