本文的目的是介绍从列表PySpark的列表创建单行数据框的详细情况,特别关注pyspark增加一列的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解从列表PySpark
本文的目的是介绍从列表PySpark的列表创建单行数据框的详细情况,特别关注pyspark增加一列的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解从列表PySpark的列表创建单行数据框的机会,同时也不会遗漏关于c# – 从列表创建列表,删除重复项.、Pyspark 问题 - 表创建、Python何时为空列表创建新的列表对象?、python通过列表创建一行数据框的知识。
本文目录一览:- 从列表PySpark的列表创建单行数据框(pyspark增加一列)
- c# – 从列表创建列表,删除重复项.
- Pyspark 问题 - 表创建
- Python何时为空列表创建新的列表对象?
- python通过列表创建一行数据框
从列表PySpark的列表创建单行数据框(pyspark增加一列)
我有这样的数据data = [[1.1, 1.2], [1.3, 1.4], [1.5, 1.6]]
我想创建一个PySpark数据框
我已经用过
dataframe = SQLContext.createDataFrame(data, [''features''])
但我总是得到
+--------+---+|features| _2|+--------+---+| 1.1|1.2|| 1.3|1.4|| 1.5|1.6|+--------+---+
我如何获得如下所示的结果?
+----------+|features |+----------+|[1.1, 1.2]||[1.3, 1.4]||[1.5, 1.6]|+----------+
答案1
小编典典我发现将参数createDataFrame()
视为元组列表很有用,其中列表中的每个条目对应于DataFrame中的一行,而元组的每个元素对应于一列。
您可以通过将列表中的每个元素设为元组来获得所需的输出:
data = [([1.1, 1.2],), ([1.3, 1.4],), ([1.5, 1.6],)]dataframe = sqlCtx.createDataFrame(data, [''features''])dataframe.show()#+----------+#| features|#+----------+#|[1.1, 1.2]|#|[1.3, 1.4]|#|[1.5, 1.6]|#+----------+
或者,如果更改源很麻烦,则可以等效地执行以下操作:
data = [[1.1, 1.2], [1.3, 1.4], [1.5, 1.6]]dataframe = sqlCtx.createDataFrame(map(lambda x: (x, ), data), [''features''])dataframe.show()#+----------+#| features|#+----------+#|[1.1, 1.2]|#|[1.3, 1.4]|#|[1.5, 1.6]|#+----------+
c# – 从列表创建列表,删除重复项.
我有以下类示例:
class Widget { public string OwnerName; public int SomeValue; } class Owner { public string Name; public string OtherData; }
我想根据小部件列表创建一个所有者列表,但只有唯一的所有者名称.
这是我尝试过的:
List<Owner> Owners = MyWidgetList.Select(w => new Owner { Name = w.OwnerName }).distinct().ToList();
问题是结果列表中有重复.我究竟做错了什么?
解决方法
这是因为LINQ扩展方法使用IEqualityComparer接口来比较对象.如果没有定义自定义比较器(可以通过创建实现IEqualityComparer< Owner>的单独类来实现),它将使用默认的相等比较器,它使用类的Equals()和GetHashCode()定义.其中,如果不覆盖它们,则引用Equals()上的比较并返回默认对象哈希码.
定义自定义IEqualityComparer< Owner> (因为你在一系列所有者上调用distinct)或者为你的类添加一个Equals()和GetHashCode().
public class Owner { public string Name; public string OtherData; public override Equals(object other) { if (ReferenceEquals(this,other)) return true; if (other == null) return false; // whatever your deFinition of equality is... return Name == other.Name && OtherData == other.OtherData; } public override int GetHashCode() { int hashCode = 0; unchecked { // whatever hash code computation you want,but for example... hashCode += 13 * Name != null ? Name.GetHashCode() : 0; hashCode += 13 * OtherData != null ? OtherData.GetHashCode() : 0; } return hashCode; } }
一旦你这样做,你写的查询将正常工作.
Pyspark 问题 - 表创建
如何解决Pyspark 问题 - 表创建?
在 HUE 中运行 sql 查询有效 - “创建存储为 parquet 的表,如 t as ......”,但通过 pyspark 数据框的相同查询不会创建相同的表 -
df = spark.sql(my_query)
df.write.mode(''overwrite'').saveAsAtable(some_name)
它创建了一个复杂类型(数组)表。
有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Python何时为空列表创建新的列表对象?
以下对我来说很有意义:
>>> [] is []
False
鉴于列表是可变的,[]
因此每次出现在表达式中时,我都希望它是一个新的空列表对象。但是,使用此解释,以下内容使我感到惊讶:
id([]) == id([])
True
为什么?有什么解释?
python通过列表创建一行数据框
解决方法
In [11]: l = range(1,100) pd.DataFrame(data=[l]) Out[11]: 0 1 2 3 4 5 6 7 8 9 ... 89 90 91 92 93 94 95 96 \ 0 1 2 3 4 5 6 7 8 9 10 ... 90 91 92 93 94 95 96 97 97 98 0 98 99 [1 rows x 99 columns]
您可以将列名称作为arg传递给DataFrame构造函数或直接分配:
pd.DataFrame(data = [l],columns = col_list)
要么
df.columns = col_list
关于从列表PySpark的列表创建单行数据框和pyspark增加一列的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于c# – 从列表创建列表,删除重复项.、Pyspark 问题 - 表创建、Python何时为空列表创建新的列表对象?、python通过列表创建一行数据框的相关信息,请在本站寻找。
本文标签: