我使用以下功能上传自定义分隔符文件。
from pyspark.sql.types import *
from pyspark.sql import *
def loadFile(path, rowDelimeter, columnDelimeter, firstHeaderColName):
loadedFile = sc.newAPIHadoopFile(path, "org.apache.hadoop.mapreduce.lib.input.TextInputFormat",
"org.apache.hadoop.io.LongWritable", "org.apache.hadoop.io.Text",
conf={"textinputformat.record.delimiter": rowDelimeter})
rddData = loadedFile.map(lambda l:l[1].split(columnDelimeter)).filter(lambda f: f[0] != firstHeaderColName)
return rddData
我调用了下面的函数。
from pyspark.sql.types import *
from pyspark.sql import *
Schema = StructType([
StructField("FlightID", StringType(), True),
StructField("Flightname", StringType(), True),
StructField("FlightNo", StringType(), True),
StructField("Depaturetime", StringType(), True),
StructField("ArrivalTime", StringType(), True),
StructField("FromPlace", StringType(), True),
StructField("ToPlace", StringType(), True),
StructField("Cremember", StringType(), True)
])
Data= loadFile("wasb://Accountnumber@serviceaccount.blob.core.windows.net/Flightdetails.txt",
"\r\n","#|#","FlightID")
FlightDF = sqlContext.createDataFrame(Data,Schema )
FlightDF.write.saveAsTable("Flightdetail")
源文件大小为2GB,进程继续运行。表不是在Azure中创建的。
我做错了什么?
答案 0 :(得分:0)
建议尝试使用较小的数据集或几行。 2 GB数据文件可能有一些数据异常,可能导致此问题。