无法从Pandas数据框创建Spark SQL数据框

时间:2019-02-10 17:48:37

标签: pandas dataframe pyspark apache-spark-sql

我需要以下代码段的帮助

def query(self, inputs=[], start=None, end=None):
    fields = ["{0}={1}".format(c, self.getname(c)) for c in inputs]
    dframes = []

    start_time = time.time()

    for file in self.mal_files:
        if ((start is not None and start <= file.date) or start is None) and ((end is not None and file.date <= end) or end is None):
            ok, df = self.get_data(file, fields)
            if ok:
                if len(dframes) == 0:
                    self.res.query_date_start = file.date
                self.res.query_date_end = file.date

                self.res.number_mal_files_read += 1
                dframes.append(df)

    if len(dframes) > 0:
        raw_data_pandas = pd.DataFrame(pd.concat(dframes))

        sc = SparkContext()
        sql = SQLContext(sc)

        raw_data_spark_sql = sql.createDataFrame(pd.concat(dframes))

此代码对不同的文件进行查询,到目前为止,它可以正常工作。将不同文件连接到pandas数据框也可以工作。但是我需要连接的熊猫数据框作为spark sql数据框,这就是问题所在。我收到以下错误消息: py4j.Py4JException:方法 getstate ([])不存在 可能与火花上下文(sc)的定义有关。

我使用pyspark并尝试在函数内部和外部定义spark上下文,但没有成功。我不确定,所以谢谢您的帮助!

0 个答案:

没有答案