【发布时间】:2016-09-01 11:40:17
【问题描述】:
我的代码 1st 使用正则表达式提取数据并将该数据写入文本文件(字符串格式)。 然后我尝试从文本文件中的内容创建一个数据框,以便我可以拥有导致错误的单独列。 (将其写入 csv 文件会将整个内容写入一列)。
with open("C:\\Sample logs\\dataframe.txt",'a') as f:
f.write(str(time))
f.write(" ")
f.write(qtype)
f.write(" ")
f.write(rtype)
f.write(" ")
f.write(domain)
f.write("\n")
new = sc.textFile("C:\\Sample logs\\dataframe.txt").cache() # cause df requires an rdd
lines1 = new.map(lambda x: (x, ))
df = sqlContext.createDataFrame(lines1)
但我收到以下错误:
TypeError: Can not infer schema for type: type 'unicode'
我尝试了其他一些方法,但没有帮助。我要做的就是在执行写操作后,我想创建一个具有单独列的数据框,以便使用 groupBy()。
文本文件中的输入:
1472128348.0 HTTP - tr.vwt.gsf.asfh
1472237494.63 HTTP - tr.sdf.sff.sdfg
1473297794.26 HTTP - tr.asfr.gdfg.sdf
1474589345.0 HTTP - tr.sdgf.gdfg.gdfg
1472038475.0 HTTP - tr.sdf.csgn.sdf
csv 格式的预期输出:
与上面相同,但分成几列,以便我可以执行 分组操作。
【问题讨论】:
-
你能不能
lines1.take(1) -
请举例说明输入数据和预期的数据框结构
-
saveAsTextFile类也有DataFrame方法吗?你的 spark 版本是什么? -
@AlbertoBonsanto:它返回输入的第一行
-
@Yaron:我已将其添加到问题中
标签: python csv apache-spark pyspark apache-spark-sql