我可以在 excel 文件中写入 RDD 数据以及在 apache-spark 中映射吗?这是正确的方法吗?那不是一个写作将是一个本地函数并且不能通过集群传递吗?
下面给出了python代码(它只是一个澄清我的问题的例子,我知道这个实现实际上可能不是必需的):
import xlsxwriter
import sys
import math
from pyspark import SparkContext
# get the spark context in sc.
workbook = xlsxwriter.Workbook('output_excel.xlsx')
worksheet = workbook.add_worksheet()
data = sc.textFile("xyz.txt")
# xyz.txt is a file whose each line contains string delimited by <SPACE>
row=0
def mapperFunc(x):
for i in range(0,4):
worksheet.write(row, i , x.split(" ")[i])
row++
return len(x.split())
data2 = data.map(mapperFunc)
workbook.close()
有2个问题:
另外,如果#2是正确的,那么请澄清我认为工作表是在本地机器上创建的,那么它是如何工作的?
谢谢
最佳答案
hadoopoffice 库使您能够通过集成 ExcelOutputFormat(使用 PairRdd.saveAsNewAPIHadoopFile)或 Spark 2.x 数据源 API 使用 Spark 1.x 编写 Excel 文件。使用这个库,您可以将文件存储到 HDFS 或本地或 S3 或 Azure...
在此处查找一些示例:
https://github.com/zuinnote/hadoopoffice
关于python - 沿着 apache-spark 中的映射在 excel 文件中写入 RDD 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23923966/