В Pyspark вы можете сделать, как показано ниже
# create a data frame
df = sqlContext.createDataFrame(
[
("SirChillingtonIV", "20120104"),
("Booooooo99900098", "20120104"),
("Booooooo99900098", "20120106"),
("OprahWinfreyJr", "20120110"),
("SirChillingtonIV", "20120111"),
("SirChillingtonIV", "20120114"),
("SirChillingtonIV", "20120811")
],
("user_name", "login_date"))
# Import functions
from pyspark.sql import functions as f
# Create data framew with new column new_date with data in desired format
df1 = df.withColumn("new_date", f.from_unixtime(f.unix_timestamp("login_date",'yyyyMMdd'),'yyyy-MM-dd'))
Thread.getId (это может теоретически переполниться, но это определяется не к и на практике не будет).
1.5 проходит его Конец периода Срока службы теперь, но если Вы используете старые пыльные деки 1.4, затем можно реализовать собственное с ThreadLocal
. (Отметьте, не следуйте за Java SE 6 документов API слишком тесно!)
Почему Вам нужно это? Поскольку в зависимости от Вашего ответа, существует несколько подходов.
Во-первых, поймите, что имя потока, как гарантируют, не будет уникально. Ни хэш-код идентификационных данных.
Если Вы действительно хотите связать уникальный идентификатор к потоку, Вы испытываете необходимость, чтобы сделать это сами. Вероятно, использование IdentityHashMap. Однако это представит сильную ссылку, что Вы не хотите иметь брожение вокруг в производственном приложении.
Править: TofuBeer имеет решение, это, вероятно, лучше, хотя документы отмечают, что идентификаторы потока могут быть снова использованы.
Можно использовать getID, если Вы находитесь на JDK 1.5 или выше.
Имеет место это, что Вам нужно последовательное значение в течение каждого раза, когда Вы выполняете модульные тесты, или просто уникальное достаточно хорошее значение?
Как упомянуто в "Thread.getId () глобальный вопрос об уникальности" ТАК вопрос, и подтвержденный исходным кодом Thread.java:
/* For generating thread ID */
private static long threadSeqNumber;
/* Set thread ID */
tid = nextThreadID();
private static synchronized long nextThreadID() {
return ++threadSeqNumber;
}
Идентификатор потока очень прост реализовать себя, если Ваш находятся все еще в java1.4.
Однако эта реализация означает, что данный поток не будет иметь того же идентификатора, когда Вы запустите свою программу несколько раз.
Таким образом в зависимости от того, в чем Вы нуждаетесь, Вам, вероятно, придется проводить политику именования, которая является обоими: