首页 文章

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

提问于
浏览
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`", FloatType(), True)])
input_mock_df = spark.createDataFrame(input_mock_rdd_map, rdd_schema)

以下代码返回列名称

input_mock_df.columns

但是,对此数据帧的任何操作都会给出错误

input_mock_df.count()

如何创建包含“ . ”的有效spark数据帧?

Note

  • 我没有在列名中给出"."代码完美无缺 .

  • 我想用原生火花解决它,而不是使用熊猫等

1 回答

  • 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.请尝试回复

相关问题