用于循环和将记录插入数据库的本机python数据帧

2024-03-29 06:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在工作的AWS胶水,所以我不能使用熊猫/Numpy等目前。你知道吗

我有一个数据帧的记录,我需要处理和更新到mysql数据库。我需要检查记录是否可用并且已经存在,请在重复键上执行插入操作。因此,我需要使用本机python库在数据帧中循环。我发现的所有数据帧迭代器都在使用pandas,但是有没有办法不用pandas呢?你知道吗

请在此找到一个示例数据框:

df1 = sqlContext.createDataFrame([
    ('4001','81A01','Portland, ME','NY'),
    ('4002','44444','Portland, ME','NY'),
    ('4022','33333','BANGALORE','KA'),
    ('5222','88888','CHENNAI','TN')],
    ("zip_code_new", "territory_code_new", "territory_name_new", "state_new"))

我尝试了以下操作,但收到错误消息,“AttributeError:'DataFrame'对象没有属性'values'

for i in df1.values():
    print i

更新:下面的代码似乎与本机python一起工作,在数据帧中循环。另外,psidom的代码也应该可以工作,但我看不到打印结果。你知道吗

arr = df1.collect()
  for r in arr:
      print r.zip_code_new

谢谢


Tags: 数据inpandasnewfor记录codezip
1条回答
网友
1楼 · 发布于 2024-03-29 06:37:35

您不使用for loop on spark数据帧;它有foreach方法来循环行;例如,我们可以按如下方式打印每行中的zip_code_new

def process_row(r):
    # your sql statement may go here
    print('zip_code_new: ', r.zip_code_new)

df1.foreach(process_row)

#('zip_code_new: ', u'4002')
#('zip_code_new: ', u'5222')
#('zip_code_new: ', u'4022')
#('zip_code_new: ', u'4001')

相关问题 更多 >