我启用了以下spark.sql会话:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = '192.168.1.162' # The IP printed by the server must be set here
# or we can set it using env variable named SERVER_IP
if 'SERVER_IP' in os.environ:
host = os.environ['SERVER_IP']
port = 12048
print("Connecting to {}:{}".format(host, port))
s.connect((host, port))
msg = s.recv(1024)
print(msg.decode("utf-8"))
并能够产生以下查询的结果:
# creating Spark context and connection
spark = (SparkSession.builder.appName("appName").enableHiveSupport().getOrCreate())
但是,当我尝试将查询中的结果数据帧写入hdfs时,出现以下错误:
我能够将此查询的简单版本的结果数据框保存到同一路径。通过添加诸如count(),year()等功能会出现问题。
是什么问题?以及如何将结果保存到hdfs?
答案 0 :(得分:3)
由于'('出现在'year(CAST(plt_date AS DATE)))列中,因此出现错误:
用于重命名:
data = data.selectExpr("year(CAST(plt_date AS DATE)) as nameofcolumn")
如果可以投票