使用Synapse ML调用Azure认知服务情感分析报错求助
Azure认知文本服务情感分析调用错误排查方案
核心问题分析与修复步骤
1. 参数配置冲突
Synapse ML的TextSentiment组件中,setLocation与setUrl无需同时配置,二者选其一即可:
- 若使用完整服务端点,直接用
setUrl传入,删除setLocation配置; - 若使用区域标识,保留
setLocation,删除setUrl配置。
以下是两种正确配置的代码示例:
示例1:使用完整端点
from synapse.ml.cognitive import * input_df = spark.createDataFrame([ ("I am so happy today, its sunny!", "en-US"), ("I am frustrated by this rush hour traffic", "en-US"), ("The cognitive services on spark aint bad", "en-US"), ], ["text", "language"]) sentiment_df = (TextSentiment() .setTextCol("text") .setUrl(end_point) # 确保为文本分析服务的完整端点,格式如https://eastus.cognitiveservices.azure.com/ .setSubscriptionKey(service_key) .setOutputCol("sentiment") .setErrorCol("error") .setLanguageCol("language") .transform(input_df))
示例2:使用区域标识
from synapse.ml.cognitive import * input_df = spark.createDataFrame([ ("I am so happy today, its sunny!", "en-US"), ("I am frustrated by this rush hour traffic", "en-US"), ("The cognitive services on spark aint bad", "en-US"), ], ["text", "language"]) sentiment_df = (TextSentiment() .setTextCol("text") .setLocation("eastus") # 需与Azure文本分析服务所在区域完全一致 .setSubscriptionKey(service_key) .setOutputCol("sentiment") .setErrorCol("error") .setLanguageCol("language") .transform(input_df))
2. 端点与密钥有效性校验
- 确认
end_point是Azure**文本分析(Text Analytics)**服务的官方端点,而非其他认知服务端点; - 检查
service_key是否为该文本分析服务的有效密钥(可在Azure门户的服务“密钥和端点”页面获取); - 确保端点格式正确,结尾需带有斜杠,例如
https://eastus.cognitiveservices.azure.com/。
3. 网络与权限检查
- 若运行环境为Synapse工作区,确认文本分析服务的网络规则允许该工作区访问(如未设置防火墙限制,或已将Synapse工作区加入允许列表);
- 检查运行环境是否能正常访问Azure认知服务的公网端点。
4. 版本兼容性验证
确保Synapse ML版本与当前环境的Spark版本兼容,建议升级至最新稳定版:
pip install --upgrade synapseml
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

