不能使用Databricks PySpark并行化来挑选<type'cstringio.stringi'=“”>

时间:2015-07-17 13:56:56

标签: python amazon-s3 pickle pyspark

我已经阅读了一些问题,询问有关工作人员序列化的多处理模块,cStringIO.StringO无法进行腌制。但是,我有一个cStringIO.StringI(注意最后一个资本&#39;我&#39;,输入&#39;我认为)。我不知道如何解决这个问题。我试图使用PyPDF2将一系列S3存储桶键映射到Pdf对象。到目前为止,如果我在我的本地系统上这样做很好,但如果我对工人这样做,那就错了。这是包含错误消息的代码:

def createPdfObject(pdfIdKey):
  pdfId = str(pdfIdKey[0])
  pdfKey = pdfIdKey[1]
  pdfKey.get_contents_to_filename(pdfId+'.pdf')
  try:
    pdfObj = pdf.PdfFileReader(pdfId+'.pdf')
  except pdf.utils.PdfReadError as ex:
    pdfObj = None
    message = "Traceback: {0}\nException: {1} for PDF id: {2}. Arguments:\n{3!r}\nIgnoring this file. Returned NoneType"\
      .format(traceback.format_exc(), type(ex).__name__, pdfId, ex.args)
    print message
    pass
  return (pdfId, pdfObj)

pdfDataRDD = filesRDD.map(lambda x: createPdfObject(x))

Databricks服务器上没有完整回溯的错误(超长):

PicklingError: Can't pickle <type 'cStringIO.StringI'>: attribute lookup cStringIO.StringI failed

0 个答案:

没有答案