我正在尝试使用Spark 2.0中的pyspark将数据插入到hive表中。这是我的代码 -
import pandas as pd
from pyspark.sql import SparkSession
spark = SparkSession\
.builder\
.enableHiveSupport()\
.appName("sparkApp")\
.getOrCreate()
spark._jsc.hadoopConfiguration().set('fs.defaultFS', 's3n')
data = pd.read_csv('s3n://some-path',sep = '\t',compression = 'gzip')
//some manipulation in data
data_sdf = spark.createDataFrame(data)
data_sdf.createOrReplaceTempView('data')
spark.sql(
'INSERT OVERWRITE TABLE schmea.my_table\
PARTITION (col1,col2)\
select col1,col2,col3,col4 from data')
这导致异常 -
App > pyspark.sql.utils.IllegalArgumentException: 'Wrong FS: s3://bucket/a-path, expected: s3n://bucket'
我在EMR上使用Hive,而Hive表的数据文件实际上驻留在S3上。我该怎么做才能避免这种例外?