下面的代码是在pyspark shell中运行时的工作文件,但在spark-submit master-yarn中执行时失败。
我到底做错了什么?
from datetime import date, timedelta
import pandas as pd
import os, sys
startd = '20140101'
endd=str(sys.argv[1])
currd=str(sys.argv[2])
spark = SparkSession.builder.getOrCreate()
base = "s3://metadata_v1/DATE="
dstart = pd.to_datetime(startd).date()
dend = pd.to_datetime(endd).date()
s3 = []
days = [dstart + timedelta(days=x) for x in range((dend - dstart).days + 1) if (dstart + timedelta(days=x)).weekday() == 5]
for i in days:
s3.append(base + i.strftime('%Y-%m-%d'))
data = spark.read.option("header", "True").option("delimiter", "|").option("basePath","s3://metadata_v1/").csv(s3)
错误:
pyspark.sql.utils.AnalysisException: u'Unable to infer schema for CSV. It must be specified manually.;'
发布于 2020-07-28 22:18:55
当您的一些csv文件包含标题行时,可能会发生这种情况,在尝试转换某些列的数据类型时,无法加载某些列。在读取数据帧之前,您可以尝试删除每个CSV文件中的标题行。
https://stackoverflow.com/questions/63136180
复制相似问题