Pyspark:如何将online.gz日志文件加载到pyspark.sql.dataframe数据帧

2024-04-25 14:25:18 发布

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

所以我在网上托管了一个.gz日志文件,如下所示

https://example.com/sample.log.gz

我可以使用以下命令将其加载到Python列表中:

^{pr2}$

然后,我尝试使用

sqlContext.createDataFrame(data)

但是得到了

TypeError: Can not infer schema for type: <type 'str'>

那么,将.gz日志文件直接加载到pyspark.sql.dataframe.DataFrame中的有效方法是什么?在

感谢你的帮助!在


Tags: 文件samplehttps命令comlog列表data
1条回答
网友
1楼 · 发布于 2024-04-25 14:25:18

问题来自于data变量的形式。 它是['qwr', 'asd', 'wer'],但必须是[['qwr'], ['asd'], ['wer']]。在

为此,您可以使用data = [[x] for x in data]

然后sqlContext.createDataFrame(data)


另一种解决方案是直接将文件加载为文本文件(但它需要以某种方式保存文件),然后按上述方式进行转换:

f = tempfile.NamedTemporaryFile(delete=True)
shutils.copyfileobj(response, f)
rdd = sc.textFile(f.name)
//save transformation as previously
rdd_list = rdd.map(lambda x: [x])
df = sqlContext.createDataFrame(rdd_list)

相关问题 更多 >