我有一个列名为department city的employee配置单元表,我想根据hivecontext.sql()函数中使用in operation的雇员的姓名检索数据,但它引发了pyspark.analysis异常。请看下面的示例。
员工表:
Name Department City
Ram FDE Mumbai
Ramesh CTZ Pune
Suraj FDE Chennai
Varun CTZ Delhi
查询:
SELECT * from employee WHERE Name in ('Ramesh' , 'Varun')
spark程序的代码段:
namesList= ['Ramesh' , 'Varun']
data = HiveContext.sql('SELECT * from employee WHERE Name in ({namesList})'.format(namesList = namesList))
我试图修改并传递字符串而不是list,但错误仍然是一样的
Error:pyspark.AnalysisException : structType field
如果我在这里做错了什么,请帮我一个忙,并提出建议。
2条答案
按热度按时间xdyibdwo1#
在创建查询时,应该去掉python列表中的方括号-
str(namesList)[1:-1]
```data = HiveContext.sql('SELECT * from employee WHERE Name in ({namesList})'.format(namesList = str(namesList)[1:-1]))
smtd7mpg2#
替换此
用这个
你需要传递字符串而不是列表。