如何使用包含点/句点的列名创建spark数据框?

时间:2018-01-08 08:52:42

标签: apache-spark pyspark apache-spark-sql spark-dataframe apache-spark-mllib

我在列表中有数据,并希望将其转换为火花数据框,其中一个列名称包含“。”

我写了下面的代码,没有任何错误。

input_data = [('retail', '2017-01-03T13:21:00', 134),
                     ('retail', '2017-01-03T13:21:00', 100)]
rdd_schema = StructType([StructField('business', StringType(), True), \
                         StructField('date', StringType(), True), \
                         StructField("`US.sales`", FloatType(), True)])
input_mock_df = spark.createDataFrame(input_mock_rdd_map, rdd_schema)

以下代码返回列名

input_mock_df.columns

但是这个数据框上的任何操作都会给出错误,例如

input_mock_df.count()

如何制作包含“。”的有效火花数据帧?

注意

  • 我不给“。”在列名中代码完美无缺。
  • 我想用原生火花解决它,而不是使用熊猫等

1 个答案:

答案 0 :(得分:1)

我已运行以下代码

input_data = [('retail', '2017-01-03T13:21:00', 134),
                 ('retail', '2017-01-03T13:21:00', 100)]
rdd_schema = StructType([StructField('business', StringType(), True), \
                     StructField('date', StringType(), True), \
                     StructField("US.sales", IntegerType(), True)])

input_mock_df = sqlContext.createDataFrame(input_data, rdd_schema)

input_mock_df.count()

它可以很好地将计数返回为2.请尝试回复