Предполагая, что вы хотите String в качестве вывода, вы можете создать новую UDF для преобразования входной строки из формата yyyyMMdd
в yyyy-MM-dd
, как показано ниже:
def dateFormatDef(x: String): String = x.patch(4,"-",0).patch(7,"-",0)
val dateFormat = udf[String, String](dateFormatDef)
Выход в строке в ожидаемый формат:
df = df.withColumn("newFormat", dateFormat($"date"))
df.show()
+--------+----------+
| date| newFormat|
+--------+----------+
|20180103|2018-01-03|
|20180105|2018-01-05|
|20180111|2018-01-11|
|20180112|2018-01-12|
+--------+----------+
Существует много недостающей детали здесь.
Вы лицензируете от кого-то или пытаетесь создать лицензию?
Открытый исходный код, закрытый исходный код, продавая? При продаже Вы обеспечиваете источник?
Каково заключительное использование компонента / приложение? Вы размещаете его (как многопользовательский сайт), или это больше COTS?
Что Ваши конкуренты делают с их моделью продаж? Это, кажется, работает на них? например, это звучит разумным? <-эмулируют это.
Поскольку Вы отвечаете на те вопросы, Вы найдете лицензию, которая соответствует Вашим потребностям.
Когда Вы выделяете пробные версии своего программного обеспечения, которые являются обновляемыми к полным версиям (другими словами, блоки, которые содержат все функции), нет много, можно сделать, чтобы препятствовать тому, чтобы кто-то взломал его в конце. (с .NET это еще легче затем с собственными блоками).
Подписание и Путаница является единственным способом препятствовать тому, чтобы он был перепроектирован в очень удобочитаемой форме, но просто использовать что-то как отражатель в основном даст Вам полное.
Один из самых простых способов продолжить появление лицензирования к:
Как альтернатива можно включать информацию о лицензировании в открытый текст с хэш-кодом (это - ключ лицензирования, алгоритм должен также поддерживать общественность/закрытый ключ) в открытом тексте с приложением, и только проверьте, соответствует ли информация о лицензировании хэш-коду.
Что касается сценария "С закрытым исходным кодом" рассматривают использование путаницы. Я использовал SmartAssembly и очень удовлетворенный результатами.
Что касается режимов лицензирования. Вы говорите о компонентах .NET, таким образом, целевая аудитория является разработчиками. Я не думаю, что они будут иметь дело с бесплатными ограниченными пробными версиями. Если Вы собираетесь продать что-то ценное сообществу разработчиков, готовятся видеть "Полнофункциональную" версию на Rapidshare или потоках.
Я рекомендовал бы концентрироваться на поддержке и частых обновлениях/улучшениях, а не защите. В большинстве случаев "бизнес" покупает поддержку, а не двоичные файлы.
Если Вам нужны некоторые заголовки инструмента, почему Вы просто не гуглите для этого? ".NET, лицензирующий" запрос, даст Вам тоны ссылок.
Надежда, которая помогает.
GPL. Или объявление его общественное достояние. Или 24 страницы EULA, который ограничивает способность пользователей бриться при использовании компонента. Или что-то как этот.
Почему Вы не говорите нам, что Вы пытаетесь сделать, что надлежащие использования, и что требуется иметь, происходят?