Ошибки коннектора снежинки ProgrammingError 100078 (22000) - PullRequest
1 голос
/ 24 января 2020

Когда я пытаюсь загрузить данные из s3 в снежинку, используя скрипт python, я получаю следующую ошибку,

String '$METADATA$FILENAME' is too long and would be truncated
  File '#######', line 1, character 1
  Row 1, column $METADATA$FILENAME

Я пытаюсь сохранить исходное имя файла в таблице. Для этого я использую $METADATA$FILENAME ключевое слово. В таблице этот столбец определите с VARCHAR(16777216) типом данных с полной длиной. Есть ли способ решить эту проблему

1 Ответ

0 голосов
/ 26 января 2020
Here is the python script . Next time onwards please share your code too.

-------------------------------------------------------------------------------

#!/usr/bin/env python
# coding=utf-8
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark import SparkConf, SparkContext
import subprocess
from pyspark.sql import SparkSession
import logging
from logging import getLogger


spark = SparkSession.builder.appName("my_app").config('spark.sql.codegen.wholeStage', False).getOrCreate()

sc=spark.sparkContext
hadoop_conf=sc._jsc.hadoopConfiguration()
hadoop_conf.set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoop_conf.set("fs.s3n.awsAccessKeyId", " ") # Fill your values here
hadoop_conf.set("fs.s3n.awsSecretAccessKey", "")  # Fill your values here

logging.basicConfig(
        filename=v_log,
        level=logging.DEBUG)
logger = getLogger(__name__)

sfOptions = {
    "sfURL": "sfcsupport.snowflakecomputing.com",
    "sfAccount": "", # Fill your values here
    "sfUser": "", # Fill your values here
    "sfPassword": "", # Fill your values here
    "sfDatabase": "", # Fill your values here
    "sfSchema": "PUBLIC",
    "sfWarehouse": "", # Fill your values here
    "sfRole": "", # Fill your values here
    "parallelism": "64",
    "awsAccessKey": hadoop_conf.get("fs.s3n.awsAccessKeyId"),
    "awsSecretKey": hadoop_conf.get("fs.s3n.awsSecretAccessKey"),
    "tempdir": "s3n://<pathtofile>"  # Fill your values here
}




SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake"


df = spark.read.option("delimiter", ",").csv(
    "s3n://<pathtofile>", header=False)  # Fill your values here
df.show()
----------------------------------------------------------------------------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...