Проверяйте размер типа данных при проверке схемы с помощью pyspark - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь проверить размер типа данных при проверке схемы, но не нашел способа проверить размер типа данных, возможно ли проверить размер с помощью 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...