Я пытаюсь проверить размер типа данных при проверке схемы, но не нашел способа проверить размер типа данных, возможно ли проверить размер с помощью pyspark?
Моя структура таблицы похожа на
col1 |VARCHAR(10)
col2 |VARCHAR(10)
col3 |VARCHAR(10)
col4 |VARCHAR(10)
но когда я присвоил StringType () размер, похожий на StringType (10), который не разрешен и сталкивается с синтаксической ошибкой, я читаю файл в формате rdd
Пожалуйста, предложите
schema = StructType([
StructField("col1", StringType(), True),
StructField("col2", StringType(), True),
StructField("col3", StringType(), True),
StructField("col4", StringType(), True)
])
spark = SparkSession.builder.master('local').getOrCreate()
sc = spark.sparkContext
sqlContext = SQLContext(sc)
try:
rdd = sc.newAPIHadoopFile(fileName, "org.apache.hadoop.mapreduce.lib.input.TextInputFormat","org.apache.hadoop.io.LongWritable", "org.apache.hadoop.io.Text", conf={"textinputformat.record.delimiter": rowDelim}).map(lambda line: line[1].split(colDelim))
df = spark.createDataFrame(rdd, schema, verifySchema=True)
df.write.partitionBy("col1").format("parquet").save(fileName+".parquet")
except Exception as e:
logger.error(e)
exit(1)